簡體   English   中英

復制NSMutableArray並進行更改

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM