我试图弄清楚我在newArray
对象中遇到的越界索引问题。我将oldArray
传递给方法,然后使用以下内容:
newArray = [[NSMutableArray alloc] initWithArray:oldArray];
如果oldArray
已被释放,我是否会在此行收到错误,或者在尝试访问newArray
时是否会出现超出范围的异常?
答案 0 :(得分:2)
不,上述代码会将oldArray
复制到newArray
。以任何方式更改oldArray
(包括释放它)都不会对newArray
产生影响,并且无论如何肯定不会导致边界异常。
最可能的原因是此时oldArray
为nil
,因此newArray
是一个空数组,当您不期望它时。或者,oldArray
可能没有您认为的那么多元素。界限异常意味着您正在读取数组的末尾。它与内存管理没有任何关系。