我有以下几行代码:
NSLog(@"deleted row");
if(contacts == nil) {
NSLog(@"contacts is nil");
}
NSLog(@"hi");
NSLog(@"contacts is %@",contacts);
在控制台中,我看到deleted row
已打印,然后我看到hi
已打印,然后崩溃。变量contacts
是NSMutableArray
。如果不是nil
,为什么我不打印出来?为什么程序会崩溃?
答案 0 :(得分:3)
问题可能是您的contacts
实例已被解除分配(例如,在当前范围之外创建为自动释放但未保留),因此尝试向其发送消息(记录变量导致发送它{{1 }}或-description
消息)导致-localizedDescription
错误。
简单地将iVar与nil进行比较不需要任何方法调用,因此甚至可以在其中使用无效指针。