【发布时间】:2010-11-20 19:49:01
【问题描述】:
我对 ObjC 及其可变数组很陌生。这让我发疯了;-)
我执行以下操作:
mColumns = [NSMutableArray array];
for( int i=0; i<5; i++ ) [mColumns addObject:[[MyColumn alloc] init]];
在该代码之后,我的数组“mColumns”包含 5 个元素。但是它们中的每一个都是一个 NULL 指针! (或者至少这是调试器告诉我的)。 我已经检查了代码
[[MyColumn alloc] init]
给了我一些有效的对象,所以我不知道为什么我的数组会被 0x0s 填充。 能给我一个提示吗?
【问题讨论】:
-
NSMutableArray 不能保存 Null 指针。不知何故,您错误地解释了调试器。您可能想要更具体地说明是什么让您认为它们为 Null。代码没有问题。
-
别忘了释放这些列。你分配了它们,所以你需要释放它们。请记住,集合拥有其中的对象,因此只要它们在数组中,它们就不会消失。 developer.apple.com/mac/library/documentation/Cocoa/Conceptual/…
-
Mh 调试器显示为数组“NSObject* 0x0 Out of scope”的内容。这对我来说听起来很空。同样在操作数组中的对象时,例如“[[mColumns objectAtIndex:x] addObject:g];”应用崩溃。
-
好的,调试器在什么时候说“NSObject* 0x0”?立即还是稍后?如果需要保留阵列,您将保留阵列,对吧?
-
+1 表示您可能没有保留阵列并且它正在从您身上自动释放。
标签: objective-c arrays cocoa null nsmutablearray