• 奔溃问题总结篇


    点击通知启动进入app,直接闪退提示

    application windows are expected to have a root view controller

    原因是过早在应用中显示通知内容,另外给window设置好rootViewController,视图未出现即显示其它子控件

    刷新UITableView数据时出现奔溃

    调用:

    [listView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 4)] withRowAnimation:UITableViewRowAnimationAutomatic];

    改成

    [listView reloadData]

    可以解决(问题出现在iOS11之前的版本,应该是UITableView改版,将布局代码执行的顺序改变导致低版本布局出问题)

    除了reloadData方法,其他reload方式,如果存在indexPaths的变化,必须写在beginUpdates和endUpdates之间,同时使用insertRows和deleteRows说明indexPaths的变化情况,否则会出现Crash。

    在AVAudioEngine使用过程中,设置属性并且调用了[[AVAudioSession shareSession] setAvtivite:YES error:nil];导致设置不成功(具体不明确)而奔溃

    https://www.jianshu.com/p/6492779cb89e  由于给定的图片格式导致在iOS9.3之前的版本出现奔溃

    由于权限未定义或者未赋予导致奔溃

    由于需要主线程进行的视图更新在子线程中进行了导致奔溃

    由于在销毁对象时对象无法销毁导致奔溃(SGRMTP中出现,直接去掉该属性)

    下面的代码会?Compile Error / Runtime Crash / NSLog…?

    @interface NSObject (Sark)
    + (void)foo;
    @end
    @implementation NSObject (Sark)
    - (void)foo {
    NSLog(@"IMP: -[NSObject (Sark) foo]");
    }
    @end
    // 测试代码
    [NSObject foo];//一个类也是一个NSObject对象?所以也通过NSObject对象方法来执行
    [[NSObject new] foo];

    测试结果:如果在同一个类.m里面则会出现一个警告,但是都能正常输出(编译时都能找到方法,但是警告类方法未实现)

    拓展一:如果不是NSObject执行会crash(找不到类方法的实现,说明之前的能执行是因为还是NSObject对象来执行的)

    拓展二:改为ViewController的分类以后,在同一个文件中,执行[[ViewController class] foo]; 结果为编译不报错,执行时报错。

  • 相关阅读:
    使用binlog恢复数据
    Xtrabackup增量差量备份
    解压腾讯DB冷备的xb文件
    mysqldump
    xtrabackup备份选项
    MySQL的各种日志
    MySQL的事务相关概念
    LVS(dr)+keepalived
    MeasureSpec学习
    网络通信机制:Socket、TCP/IP、HTTP
  • 原文地址:https://www.cnblogs.com/yuxiaoyiyou/p/8532819.html
Copyright © 2020-2023  润新知