在 NSMutableArray 上调用 removeObjectAtIndex 时,我的应用程序抛出异常时遇到问题,说 myLocationsArray 被声明为不可变的。该数组上的所有其他操作都很好,它肯定是正确声明的等等,但是在我的应用程序的某个地方它被设置为不可变的。在调查了一段时间试图找到它被设置为不可变的位置之后,我决定搞砸它并重新声明变量:
myLocationsArray = [[NSMutableArray alloc] initWithArray:[defaults
objectForKey:MYLOCATIONSARRAY_KEY]];
在 removeObjectAtIndex 调用之前。
但是我知道这一定是错误的,我在同一个变量上调用了 alloc/init 两次。然而,这是唯一有效的方法。有没有办法提醒这个变量它是一个 NSMutableArray 而不会像我一样引入内存泄漏?