美文网首页iOS知识点面试
iOS 中常见crash总结

iOS 中常见crash总结

作者: 人间一流 | 来源:发表于2019-02-25 10:13 被阅读1次

    1、unrecognized selector sent to instance(找不到方法)
    2、KVC造成的crash
    给不存在的key(包括key为nil)设置value

     [obj setValue:@"value" forKey:@"UndefinedKey"]
     [obj valueForKey:@"UndefinedKey"]
    

    解决方案
    方案1、如果属性存在,利用iOS的反射机制来规避,NSStringFromSelector(@selector())将SEL反射为字符串作为key。这样在@selector()中传入方法名的过程中,编译器会有合法性检查,如果方法不存在或未实现会报黄色警告。
    方案2、重写类的setValue:forUndefinedKey:和valueForUndefinedKey:

    -(void)setValue:(id)value forUndefinedKey:(NSString *)key{
    
    }
    -(id)valueForUndefinedKey:(NSString *)key{
        return nil;
    }
    

    3、EXC_BAD_ACCESS
    4、KVO引起的崩溃
    5、集合类相关崩溃
    6、多线程中的崩溃
    7、Socket长连接,进入后台没有关闭
    8、Watch Dog超时造成的crash
    9、后台返回NSNull导致的崩溃,多见于Java做后台服务器开发语言

    相关文章

      网友评论

        本文标题:iOS 中常见crash总结

        本文链接:https://www.haomeiwen.com/subject/uqkwyqtx.html