2011-11-29 37 views
0

後空我有一個創建一個新的NSMutableDictionary的方法,設置了一些對象,然後返回一個字典,像這樣一個自動釋放:的NSMutableDictionary是初始化

NSMutableDictionary* parameters = [NSMutableDictionary new]; 

[parameters setObject:@"banana" forKey:@"fruit"]; 
[parameters setObject:@"potato" forKey:@"vegetable"]; 
[parameters setObject:@"water" forKey:@"drink"]; 

return [parameters autorelease]; 

一切正常,但是當我設置一個斷點才返回參數指針,並想通過使用打印對象來查看gdb裏面的內容,它向我顯示對象。但是,當我想訪問計數它失敗,並告訴我,它不指向一個有效的對象?

(gdb) po parameters 
{ 
drink = water; 
fruit = banana; 
vegetable = potato; 
} 

(gdb) po [parameters count] 
0x3 does not appear to point to a valid object. 

這是怎麼回事?

回答

1

您正在使用字典計數作爲參數。所以GDB實際上是試圖打印位於內存地址3(計數)的對象。

你的字典沒問題。

如果要打印計數值,請使用p而不是po。

+0

啊哈,明白了。還在學習繩索,謝謝 – Jovan

1

只需鍵入p [parameters count]

po只能用於Objective-C的對象(它意味着p RINT ö bject)。 count是一個整數,它不是Objective-C對象。