我有以下几行代码:
NSLog(@"deleted row");
if(contacts == nil) {
NSLog(@"contacts is nil");
}
NSLog(@"hi");
NSLog(@"contacts is %@",contacts);
在控制台中,看到
deleted row
打印,然后看到hi
打印,然后崩溃。变量contacts
是NSMutableArray
。如果不是nil
,为什么不能将其打印出来?为什么程序崩溃? 最佳答案
问题可能是您的contacts
实例已被释放(例如,被创建为在当前作用域之外自动释放并且未被保留),因此尝试向其发送消息(记录变量会导致向其发送-description
或-localizedDescription
消息) )导致EXEC_BAD_ACCESS
错误。
只需将iVar与nil进行比较就不需要任何方法调用,因此甚至可以在其中使用无效的指针。
关于ios - iOS上的奇怪错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6178392/