的NSMutableDictionary是初始化
问题描述:
后空我有一个创建一个新的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.
这是怎么回事?
答
您正在使用字典计数作为参数。所以GDB实际上是试图打印位于内存地址3(计数)的对象。
你的字典没问题。
如果要打印计数值,请使用p而不是po。
答
只需键入p [parameters count]
。
po
只能用于Objective-C的对象(它意味着p RINT ö bject)。 count
是一个整数,它不是Objective-C对象。
啊哈,明白了。还在学习绳索,谢谢 – Jovan