【发布时间】:2011-11-04 22:32:04
【问题描述】:
我在调试一些代码时遇到了一些问题,所以我写了这个小片段来测试它:
NSMutableArray *output = [NSMutableArray array];
while (true) {
NSMutableArray *input = [NSMutableArray array];
for (int i = 0; i < 30; i++) {
[input addObject:[NSNumber numberWithInt:i]];
}
[output addObject:[NSArray arrayWithArray:input]];
NSLog(@"%@, %@", input, output);
}
我在NSLog 的行上设置了一个断点,并发现了一些有趣的东西。进入变量视图,我打开了输入,它正确地显示它被 NSNumber 对象填充。然后我打开了输出,它正确显示为包含一个数组。但是,在扩展此数组时,它显示为空。
然而,NSLog 显示了一个不同的故事。它正确地将多维输出数组显示为包含填充有 NSNumber 的数组。多维数组不能与调试器中的变量预览一起使用吗?这是问题的图片:
我对此完全感到困惑。其他人有这个问题吗?
【问题讨论】:
-
我可以扩展每个子数组,但它被视为通用对象而不是数组(仅显示
isa指针)... -
@jtbandes 是的,我有时也会遇到这种情况。不过,我不知道为什么。这没有多大意义,因为类型清楚地写着
__NSArrayI *。是时候提交错误报告了! -
是的,我想这就是你问题的答案:)
-
@Jake King:请将雷达复制到openradar.me。
标签: objective-c xcode debugging xcode4