2012-03-09 16 views
3

我喜歡寫一些代碼:爲什麼debugger lldb表示在iOS 5.1模擬器中對象爲零?

_myDataArray = [[NSMutableArray alloc] initWithCapacity : kNum]; 

for (int i=0; i<kNum; i++) { 
    MyData *myData = [[[MyData alloc] init] autorelease]; 
    pageData.title = [NSString stringWithFormat:@"No.%d line", i]; 
    [_myDataArray addObject:myData]; 
} 

有在的iOS 4.3模擬器沒有問題,但LLDB調試說_myDataArray是零

(lldb) po _myDataArray 
(NSMutableArray *) $2 = 0x00000000 <nil> 
iOS中

5.0/5.1模擬器時,Xcode 4.3.1但鑑於結果是正確的。

Xcode 4.3.2可以解決這個問題。

+2

lldb說什麼_myDataArray是零?如果你在代碼中做了NSLog(@「_ myDataArray是%p」,_myDataArray);'它是否也顯示爲nil?你在使用ARC嗎? kNum被定義爲什麼? – 2012-03-09 08:35:05

+0

NSLog打印_myDataArray不是零。我發現問題是:我在.h文件中創建實例變量NSMutableArray * _myPageDataArray,這是不正確的。我應該在.m文件中創建它。 – smoothdvd 2012-03-09 08:52:48

+1

您是否找到了解決方案?我剛剛跑到這,並試圖將變量定義移動到m文件中,但它並沒有辦法。有些東西看起來嚴重錯誤。 – MagicSeth 2012-03-19 15:57:13

回答

0

我可以確認我們使用4.3.1 Xcode的5.0和5.1模擬器有同樣的問題。與Xcode 4.2.1和5.0模擬器相同的代碼沒有問題。注意到可變數組按照它們在.h文件中的順序進行分配 - 在調試模式下逐步通過.m代碼很搞笑,因爲數組按順序分配。解?等待Apple解決問題,報告錯誤等。

+0

嘗試將變量設置爲@private – smoothdvd 2012-03-23 05:36:28

+0

Xcode 4.3.2修復此問題。 – smoothdvd 2012-03-23 05:41:43

0

我可以在iDevice和Simulator上確認與iOS 4.3,5.0和5.1完全相同的問題。從Xcode 4.3.1更新到4.3.2並不能解決此處的問題...

切換回方案設置中的GDB調試器可解決問題。

0

我和5.0和5.1模擬器中的所有項目都有同樣的問題。 XCode 4.3.3爲我解決了這個問題。

相關問題