2011-11-29 30 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对象。

相关问题