我有一个 NSMutableArray 在我的 .h 文件中声明为 (nonatomic,retain) ,并正确合成。tempRandomWord 是一个始终填充的 NSString。但是,count 始终返回 0。任何想法为什么?
[pastWords addObject:tempRandomWord];
int count=[pastWords count];
NSLog(@"%i",count);
我有一个 NSMutableArray 在我的 .h 文件中声明为 (nonatomic,retain) ,并正确合成。tempRandomWord 是一个始终填充的 NSString。但是,count 始终返回 0。任何想法为什么?
[pastWords addObject:tempRandomWord];
int count=[pastWords count];
NSLog(@"%i",count);
您可能忘记了初始化数组。您在 viewDidLoad 或其他地方需要这条线
pastWords = [NSMutableArray array];
我个人喜欢把它们放在需要的地方,如下所示:
if (!pastWords) {
pastWords = [NSMutableArray array];
}
[pastwords addObject:object];
您的数组未初始化。只需在读取/使用属性之前在某处添加延迟初始化。
self.pastWords=self.pastWords?self.pastWords:[NSMutableArray array];
或者如果您直接使用 iVar:
pastWords=pastWords?pastWords:[NSMutableArray new];
或 init 中的正常初始化
如果您从类外部分配该属性,您可能需要调用 mutableCopy 以确保使用可变数组,即使分配了 NSArray 也是如此。