我有一个方法可以创建一个新的NSMutableDictionary,设置一些对象,然后像这样自动释放返回该字典:
NSMutableDictionary* parameters = [NSMutableDictionary new];
[parameters setObject:@"banana" forKey:@"fruit"];
[parameters setObject:@"potato" forKey:@"vegetable"];
[parameters setObject:@"water" forKey:@"drink"];
return [parameters autorelease];
一切正常但是当我在返回参数指针之前设置断点时,想要通过使用print对象查看gdb内部的内容,它会向我显示对象。但是,当我想访问计数时,它会失败,并告诉我它没有指向有效的对象?
(gdb) po parameters
{
drink = water;
fruit = banana;
vegetable = potato;
}
(gdb) po [parameters count]
0x3 does not appear to point to a valid object.
发生了什么事?
答案 0 :(得分:1)
只需输入p [parameters count]
。
po
只能用于Objective-C对象(它意味着 p rint o bject)。 count
是一个整数,它不是Objective-C对象。
答案 1 :(得分:1)
您正在使用带字典计数的po作为参数。所以GDB实际上是在尝试打印位于内存地址3(计数)的对象。
你的字典很好。
如果要打印计数值,请使用p而不是po。