我有以下代码,它是预定义的NSArray
但我将其分配给id
变量。
我显示输出并希望显示类名,即使它在输出窗口显示<__NSArrayI ..... >
,但我得到如下的空描述。我怎么能上课dic1
?
id dic1 =@[@{@"id":@"1",@"name":@"Test 1 "},@{@"id":@"2",@"name":@"Test 2"}];
(lldb) po dic1
<__NSArrayI 0x100300090>(
{
id = 1;
name = "Test 1 ";
},
{
id = 2;
name = "Test 2";
}
)
(lldb) po [dic1 isKindOfClass:[NSArray class]]
<object returned empty description>
更新
(lldb) p [dic1 isKindOfClass:[NSArray class]]
error: no known method '-isKindOfClass:'; cast the message send to the method's return type
答案 0 :(得分:3)
这是一个总结所有评论的答案。
po
打印对象类型的结果。使用p
打印基本类型的结果。isKindOfClass:
返回BOOL
,因此您需要使用p
,而不是po
。由于dic1
是id
,调试器不确定isKindOfClass:
方法是什么,所以它不知道它的返回类型。添加一个演员表清楚:
p (BOOL)[dic1 isKindOfClass:[NSArray class]]
或者您也可以这样做:
p [(NSObject *)dic1 isKindOfClass:[NSArray class]]
id
使用dic1
,但由于这是一项学习练习,请按照您的意愿行事。 :)