【发布时间】:2015-09-26 15:21:02
【问题描述】:
我在我的视图控制器上创建了一个 NSMutableArray 属性,它为用户保存了一些核心数据对象。
当用户按下按钮时,我用while循环清除可变数组的内容,
while (self.mArray.count != 0){
[context deleteObject:self.mArray[0]];
[self.mArray removeObjectAtIndex:0];
}
在while循环之后,我重新初始化数组:
self.mArray = [[NSMutableArray alloc] init];
我知道这是没有必要的,因为数组中应该有零个对象,但无论如何,当我重新初始化数组,然后在调试器中检查数组的类时,我得到了 __NSArrayI,这得到了证实之后我尝试将对象添加到 self.mArray 时引发异常。
我一直在寻找对我的数组的任何其他引用,但我总是将 [self.mArray mutableCopy] 作为参数传递给其他方法,并且我从未将其转换为 NSArray。我只是不明白如何调用 [[NSMutableArray alloc] init] 将数组初始化为不可变数组。
我错过了什么?
【问题讨论】:
-
你能给我们看看属性 mArray 的声明吗?
-
假设您的
mArray属性是用copy定义的,这是stackoverflow.com/questions/14856681/… 的副本 -
我的属性声明如下所示:@property (strong, nonatomic) NSMutableArray *mArray;
标签: ios objective-c arrays nsmutablearray nsarray