iOS上

2011-05-30 35 views
0

我有以下代碼行奇怪的錯誤:iOS上

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

在控制檯中,我看到deleted row印刷,然後我看到hi印刷,然後將其崩潰。變量contactsNSMutableArray。如果它不是nil,爲什麼我不能打印出來?爲什麼程序崩潰?

+0

如果你消除最後一個NSLog它會崩潰嗎?你如何分配/初始化NSMutableArray – aherlambang 2011-05-30 16:00:36

+0

你可以顯示代碼在哪裏分配數組 – dbslone 2011-05-30 16:01:23

回答

3

的問題可能是,你的contacts實例被釋放(如自動釋放電流範圍之外,並沒有保留例如創建),因此試圖發送一個消息(登錄不同的結果在其發送-description-localizedDescription消息)引線到EXEC_BAD_ACCESS錯誤。

簡單地比較iVar和nil並不需要任何方法調用,所以即使無效指針也可以使用。

+0

即使我保留nsmutablearray當我alloc和初始化它(在viewDidLoad方法),它崩潰 – CodeGuy 2011-05-30 21:19:00

+0

可以張貼您的代碼那?最可能的錯誤在那裏 – Vladimir 2011-05-30 21:22:08