[英]Copy NSMutableArray and change it
我有方法:
-(void)ModifyArray:(NSMutableArray)orginalArray
{
NSMutableArray* copy = [[NSMutableArray alloc]init];
copy = [orginalArray copy];
Field* field = [copy objectAtIndex:0];
[copy replaceObjectAtIndex:0 withObject:field];
}
我在最后一行收到錯誤,這使我無法更改副本數組。
當我使用mutableCopy而不是copy時,我可以更改copy數組,但是我的orginalArray也可以更改:/我只想創建od orginalArray的副本而不引用它,並且僅更改新的數組。
我在這里看到一些問題。
1號 )
擺脫第一行,即:
NSMutableArray* copy = [[NSMutableArray alloc]init];
第二行[originalArray copy];
使它無效。
使用此代替:
NSMutableArray * copy = [originalArray mutableCopy];
或更好:
NSMutableArray * myOriginalArrayCopy = [originalArray mutableCopy];
(請參閱我在此答案中的最后一點)
2號)
您的聲明需要一個指針:
-(void)modifyArray:(NSMutableArray *)orginalArray
(注意,我還將“ ModifyArray”的首字母更改為小寫?Objective-C中的最佳實踐是方法名稱應以小寫字母開頭)
3號)
不要將“復制”用作變量的名稱。 它看起來很糟糕(也可能是語言關鍵字)。
您甚至在“ modifyArray
”函數的末尾使用該“ copy”可變數組進行任何操作嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.