EXC_BAD_ACCESS
这个异常通常是由之前的错误代码引起的,不会马上中断,而是导致其他正常运行的代码发生异常,所以比较难调试。常见的原因有:
- double release,重复释放了一个已经释放的指针,检查方法是对Executable设置运行时的 NSZombieEnabled 变量,这样,在释放一个已经失效的指针的时候,程序会自动中断。记得发现问题后把这个变量去掉。
- 字符串忘写了一个@,导致指向了错误的内存空间
- [NSString stringWithFormat:] 方法少写了一个参数也会出此问题。
NSUnknownKeyException
运行时出现下列异常导致程序退出:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<PAPrepaidViewController 0x1d978280> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key purcahseResultLabel.'
原因: xib与ViewController之间的关联有问题,可能改动了outlet而没有更新xib,导致outlet无效。例如上例中的提示是:purcahseResultLabel 出了问题