【笔记】iOS中常见的crash

251 阅读1分钟

常见的crash

  • Unrecognized Selector Sent to Instance/class
  • 容器类的数组越界,key-value参数异常
  • KVO crash
    • 移除了未注册的观察者,导致崩溃
    • 重复移除多次,移除次数多于添加次数,导致崩溃
    • 观察者没有实现observeValueForKeyPath:导致崩溃
    • 添加keypath为空字符串时,导致崩溃
    • 添加或者移除时 keypath == nil,导致崩溃
  • KVC crash
    • key/keypath值不正确
    • 设置的值的类型不匹配
  • NSString,NSMutableString,NSAttributedString,NSMutableAttributedString(下标越界以及参数nil异常)
  • NSTimer(忘记invalidate ,导致内存泄漏)
  • 不在主线程刷新UI
  • NSNull 方法不存在
  • 野指针

看门狗

APP的看门狗,基于runtime的Swizzle Method的crash防护框架,能实时捕获导致app崩溃的破坏因子并自动修复,保持应用的健壮性,传送门