数组在Xcode 4调试器中显示为空,即使它们不是

时间:2011-08-27 01:51:49

标签: objective-c xcode debugging xcode4

我在调试某些代码时遇到了一些问题,所以我写了这篇小文章来测试它:

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显示了不同的故事。它正确地将多维输出数组显示为包含填充了NSNumbers的数组。多维数组不能与调试器中的变量预览一起使用吗?这是问题的图像:

enter image description here

我完全被这个困惑了。还有其他人有这个问题吗?

1 个答案:

答案 0 :(得分:3)

我已经向Apple提交了有关此版本的Xcode的错误报告,并在项目构建器时代。它一直被报道为重复。显然这是一个已知的错误,但优先级低或难以修复。

其他容器类也存在同样的问题,例如NSDictionaryNSSet,因此它不是NSArray特有的。

我建议您在http://bugreport.apple.com提交一份报告,以便对此问题施加更多压力。同时,大多数容器类的调试需要依赖于poNSLog