2011-08-01 48 views
2

我想添加對象到一個NSMutableArray(它已被正確分配和合並)。運行addObject之後,調試器說數組中有正確數量的元素,但所有元素都指向0x0。我不能在程序的後面訪問元素。截圖在這裏NSMutableArray addObject不工作(添加零指針)

http://imageshack.us/photo/my-images/818/screenshot20110801at344.png/

我缺少什麼?

注意,被添加到陣列的「風暴」的對象看起來在調試好...

的感謝!

+0

你如何分配/初始化cycloneDatabase? – highlycaffeinated

+0

如果在此斷點處在控制檯/輸出窗口中執行「po cycloneDatabase」,會得到什麼結果? (我發現GU​​I變量的解釋出人意料地不可靠)。 –

+0

<__ NSArrayM 0x5a4e7f0>( ) – Dmitri

回答

4

從您發佈的代碼中,一切都看起來很好。如果你過度釋放,那麼你不會在數組中填充指針,並且在調用addObject時有兩個元素是合理的:兩次。可能會出錯的一件事是您對cycloneDatabase數組的初始化。檢查你是否正確初始化它cycloneDatabase = [[NSMutableArray alloc] init]。我不能說我以前見過這個。

P.S.輕微的挑剔,你不應該使用get *方法,比如你的getCycloneWithName :.得到*意味着你通過引用返回,在這種情況下你不是,所以它應該只是cyloneWithName::)

+2

同意,並進一步補充說,由於NSArray的不能持有'零',調試器可能在某種程度上說謊。在沒有其他任何東西的情況下,我猜這個數組實際上是好的,如果@Dmitri以後不能訪問這些元素,那麼其他地方就會發生其他事情。 –

+0

@quixoto感謝gdb提示。調試器沒有向我顯示我想看到的值至少是問題的一部分。至於其餘的部分,我最終得出結論......我想這會教給我一個單元測試的課程,並保持代碼的組織。 (即在comp。sci。領域時,如comp-sci專業/專業人員) – Dmitri