iOS上的奇怪错误

时间:2011-05-30 15:57:38

标签: ios nsmutablearray

我有以下几行代码:

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

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

1 个答案:

答案 0 :(得分:3)

问题可能是您的contacts实例已被解除分配(例如,在当前范围之外创建为自动释放但未保留),因此尝试向其发送消息(记录变量导致发送它{{1 }}或-description消息)导致-localizedDescription错误。

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