美文网首页
oc开发过程中常见崩溃原因

oc开发过程中常见崩溃原因

作者: PittWong | 来源:发表于2016-06-16 17:42 被阅读552次

1,KVO+通知等 --监听类
必须在dealloc方法中注销监听,否则极其容易崩溃

- (void)dealloc {
    [self.currentTask removeObserver:self forKeyPath:@"status" context:nil];
//KVO崩溃,添加监听者必须记得取消监听 否则就崩给你看
    [self removeObserverBlocks];
}

2,除法的使用
当被除数为0时,无法计算,那就崩给你看

- (void)dealloc {
    self.model.value1/self.model.value2
  如果value2==0 崩给你看
}

3,非可变字典和数组
尤其在使用字面量方法来快捷创建时,当value为nil时,崩给你看

NSDictionary *requestDict = @{@"opt"       : @2,
                                  @"account"   : account,
                                  @"check"     : @(check),
                                  @"become"    : become};
如果account,become有任何一个为nil,崩给你看

4,富文本
如果string是空,崩给你看

NSDictionary *attributes = @{
                                 NSFontAttributeName:[UIFont kdxTextCellMessageFont],
                                 NSParagraphStyleAttributeName:paragraphStyle,
                                 NSForegroundColorAttributeName:[UIColor kdxTextCellMessageColor]
                                 };
    
    self.contentTextView.attributedText = [[NSAttributedString alloc] initWithString:string attributes:attributes];
string为nil,崩给你看

5,归档 解档
数据解析通过MJExtension 属性int 加了个* 导致崩溃

@property (nonatomic ,assign) int  * code;//手贱,多加了个* 

6,越界
这个应该是最常见的崩溃问题了

数组越界

NSArray *arr = @[@"1",@"2",@"3",@"4"];
NSString *str = arr[4];   //越界取值

字符串range越界

NSString *string = @"随便的一点文字";
NSString *str =[string substringWithRange:NSMakeRange(0, 10)];

7,调用了没有的方法
这个是最最最常见的崩溃

OC的运行时环境,代码实际运行的时候并非当初指定的类型,调用了实际类型没有的方法必然崩溃;

相关文章

  • oc开发过程中常见崩溃原因

    1,KVO+通知等 --监听类必须在dealloc方法中注销监听,否则极其容易崩溃 2,除法的使用当被除数为0时,...

  • 2019-03-29

    IOS开发中常见的0x8badf00d这个崩溃原因和处理 网络应用程序中看门狗超时崩溃的最常见原因是主线程上的同步...

  • iOS防崩溃

    2022-03-15 iOS OC常见崩溃和防止崩溃方案[https://www.jianshu.com/p/a7...

  • 捕获异常

    OC开发中,很多时候会遇到异常,要是不做处理的话,就会出现一个常见的问题:崩溃!其实基本上每一门开发语言都有其不会...

  • iOS开发之Xcode常用调试技巧

    一、Xcode调试技巧之:NSLog 日常的开发过程中最常见的Debug方式就是打Log。而在OC语言中,打Log...

  • iOS消息转发机制

    使用oc开发的开发者们,或多或少的接触过类似的崩溃unrecognized selector sent to in...

  • iOS组件之SwiftyUserDefaults

    最近开发过程中遇到一个线上Crash,在api发布到线上以后,app崩溃率提升到30%,打开bugly查看崩溃原因...

  • 类型安全转换函数

    在项目开发测试的过程中甚至上线后,程序的崩溃都是必然的,而类型转换引起的崩溃次数也是不在少数,常见的就包括类型转换...

  • iOS 抓取crash日志

    前言在app开发过程中难免会遇到崩溃的问题, 在线下的环境我们可以通过断点找到崩溃的代码, 从而分析出问题的原因,...

  • 一定要注意 Android 内存泄漏问题

    内存泄漏是引起Android应用崩溃常见的原因,每个Android开发人员都应该明白怎么避免发送。 常用的分析内存...

网友评论

      本文标题:oc开发过程中常见崩溃原因

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