我有 NSMutableArray,我想用另一个替换它,但如果我尝试这样做......
firstArray = secondArray;
...然后它似乎删除了整个firstArray,我收到此错误消息..
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)'
...界限应该是 (6) 而不是 (0)。
有没有正确的方法来替换数组?
PS:我已经检查了第二个数组,它运行良好。
最佳答案
如果您想让 firstArray
变量成为对第二个变量的引用,请执行以下操作:
[firstArray release];
firstArray = [secondArray retain];
如果您想让 firstArray
成为第二个的副本,请执行以下操作:
[firstArray release];
firstArray = [secondArray mutableCopy];
(在这两种情况下,release
都假定您分配了该数组或之前对其进行了retain
-ed 或copy
-ed。如果没有,您可以跳过该位。无论哪种方式,您都拥有新数组,并且必须在适当的时间释放
它。)
如果您想用第二个数组的内容替换第一个数组的内容(这与获取副本没有太大区别,但涉及更少的对象销毁和创建),那么我认为您会拥有做这样的事情:
[firstArray removeAllObjects];
[firstArray addObjectsFromArray:secondArray];
关于objective-c - 用数组替换数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041453/