2010-12-03 7 views
0
 Match *aMatch = [appDelegate.matchScoresArray 
objectAtIndex:numMatchCounter]; 
     aMatch.teamName2 = TeamNameHolder; 
     [appDelegate.matchScoresArray replaceObjectAtIndex:NumMatchCounter 
withObject:aMatch]; 
     numMatchCounter++; 

これは意味がありますか、同じオブジェクトであるので、配列にすでに反映されているteamName2の変更ですか?配列内のオブジェクトを更新されたバージョンのものに置き換える

または、自分自身にオブジェクトをコピーして配列に戻すことができます。

私は本当に混乱しています。

おかげ -code

答えて

4

オブジェクトを配列から取得して更新する必要があります。上にコピーする必要はありません。

オブジェクトへの参照を取得して更新することができます。変数aMatchは、配列内で参照されているオブジェクトと同じメモリ位置を指しています。

以下は問題ないはずです。

Match *aMatch = [appDelegate.matchScoresArray 
objectAtIndex:numMatchCounter]; 
     aMatch.teamName2 = TeamNameHolder; 
0

あなたは配列に戻ってオブジェクトをコピーする必要はありません。配列はオブジェクトへの参照を保持します。オブジェクトのインスタンスが同じである限り、プロパティを変更した後にコピーする必要はありません。

関連する問題