Objective c 如何将NSObject称为;“类”;来自gdb的方法?
我使用的是GDB6.3.50,它是Xcode 4.4.1附带的。我试图在调试器中对对象调用Objective c 如何将NSObject称为;“类”;来自gdb的方法?,objective-c,xcode,macos,debugging,gdb,Objective C,Xcode,Macos,Debugging,Gdb,我使用的是GDB6.3.50,它是Xcode 4.4.1附带的。我试图在调试器中对对象调用class,这似乎让它感到困惑 (gdb) po [JSONObject class] A syntax error in expression, near `]'. 我假设它被单词“class”绊倒了,它一定是某种保留符号,可能是因为我在Objective-C++中工作。当然,如果我尝试使用其他一些C关键字,我可以用相同的措辞将其插入错误: (gdb) po [JSONObject struct] A
class
,这似乎让它感到困惑
(gdb) po [JSONObject class]
A syntax error in expression, near `]'.
我假设它被单词“class”绊倒了,它一定是某种保留符号,可能是因为我在Objective-C++中工作。当然,如果我尝试使用其他一些C关键字,我可以用相同的措辞将其插入错误:
(gdb) po [JSONObject struct]
A syntax error in expression, near `]'.
对象本身似乎没有什么问题,因为gdb可以对其调用其他方法:
(gdb) po [JSONObject objectForKey:@"UTIMESTAMP"]
<__NSCFArray 0x89c9b0>( ...(etc.>)
(gdb)po[JSONObject objectForKey:@“UTIMESTAMP”]
(……(等>)
我是否可以在命令行中添加一些构造、符号或其他内容,以强制gdb将“类”视为选择器?直接使用Objective-C messenger函数:
po (id)objc_msgSend(JSONObject, @selector(class))
尝试了
po(id)objc\u msgSend(objc\u getMetaClass(“JSONObject”),@selector(class))
?JSONObject
是一个值而不是一个类(例如,-[NSURLRequest HTTPBody]
),但类似于objc\u msgSend(JSONObject,@selector(class))
确实有效。这样命名对象是不好的做法,caps是用于类的。它应该是jsonObject。这是我复制它的地方。但我承认它们并没有真正告诉你如何处理变量。。。