我有以下几行代码:

NSLog(@"deleted row");
if(contacts == nil) {
    NSLog(@"contacts is nil");
}
NSLog(@"hi");
NSLog(@"contacts is %@",contacts);


在控制台中,看到deleted row打印,然后看到hi打印,然后崩溃。变量contactsNSMutableArray。如果不是nil,为什么不能将其打印出来?为什么程序崩溃?

最佳答案

问题可能是您的contacts实例已被释放(例如,被创建为在当前作用域之外自动释放并且未被保留),因此尝试向其发送消息(记录变量会导致向其发送-description-localizedDescription消息) )导致EXEC_BAD_ACCESS错误。

只需将iVar与nil进行比较就不需要任何方法调用,因此甚至可以在其中使用无效的指针。

关于ios - iOS上的奇怪错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6178392/

10-10 21:02
查看更多