为什么调试器lldb说iOS 5.1模拟器中的对象是nil?

时间:2012-03-09 08:31:31

标签: xcode ios5 lldb

我写了一些代码,如:

_myDataArray = [[NSMutableArray alloc] initWithCapacity : kNum];

for (int i=0; i<kNum; i++) {
    MyData *myData = [[[MyData alloc] init] autorelease];
    pageData.title = [NSString stringWithFormat:@"No.%d line", i];
    [_myDataArray addObject:myData];
}

iOS 4.3模拟器没有问题,但是lldb调试器说_myDataArray是nil

(lldb) po _myDataArray
(NSMutableArray *) $2 = 0x00000000 <nil>

在iOS 5.0 / 5.1模拟器中,Xcode 4.3.1但视图中的结果是正确的。

Xcode 4.3.2看起来可以解决这个问题。

3 个答案:

答案 0 :(得分:0)

我可以确认使用4.3.1 Xcode的5.0和5.1模拟器存在同样的问题。与Xcode 4.2.1和5.0模拟器相同的代码没有问题。注意到可变数组按照它们在.h文件中的顺序进行分配 - 在调试模式下单步执行.m代码非常有趣,因为数组是按顺序分配的。解?等待Apple解决问题,报告错误等等。

答案 1 :(得分:0)

我可以在iDevice和模拟器中确认iOS 4.3,5.0和5.1的完全相同的问题。从Xcode 4.3.1到4.3.2的更新并没有解决这里的问题...

在方案设置中切换回GDB调试器可以解决问题。

答案 2 :(得分:0)

我在5.0和5.1模拟器中的所有项目都有同样的问题。 XCode 4.3.3为我解决了这个问题。