【发布时间】:2012-03-09 08:31:30
【问题描述】:
我写了一些类似的代码:
_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 但 in view 的结果是正确的。
Xcode 4.3.2 看起来修复了这个问题。
【问题讨论】:
-
lldb 在什么时候说 _myDataArray 为零?如果您在代码中执行
NSLog( @"_myDataArray is %p", _myDataArray);,它是否也显示为nil?你在用ARC吗?kNum的定义是什么? -
NSLog print _myDataArray 不为零。我发现问题是:我在 .h 文件中创建实例变量 NSMutableArray *_myPageDataArray,这是不对的。我应该在 .m 文件中创建它。
-
您找到解决方案了吗?我刚刚遇到了这个问题,并尝试将变量定义移动到 m 文件中,但它没有解决问题。似乎有严重问题。
-
MagicSeth 尝试将变量设置为@private
-
Xcode 4.3.2 看起来修复了这个问题。