首页 文章

NSMutableArray在重新实例化后变为不可变的?

提问于
浏览 1068
0

我在我的视图控制器上创建了一个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]如何将数组初始化为不可变数组 .

我错过了什么?

1 回答

  • 0

    您可能已在属性声明中声明了mArray作为副本 . 将其改为强者 .

相关问题