0

NSObject を含む NSMutableArray があります。コピーを作成したいのですが、元の配列を変更すると、コピーも変更されます。次のようにcopyWithZoneを実装しようとしました:

-(id) copyWithZone: (NSZone *) zone

{

Play *playCopy = [[Play allocWithZone: zone] init];

[playCopy setName:name];

[playCopy setAValues:aValues];

return playCopy;

}

この関数を viewController で呼び出します。

NSMutableArray *aTmpPlay = [[NSMutableArray alloc] initWithArray:aPlays copyItems:YES];

私は何をする必要がありますか ?参照ではなくオブジェクトの値を取得するにはどうすればよいですか?

ご協力いただきありがとうございます !

4

1 に答える 1

1

基本的に、名前と値に割り当てられたメモリの参照を引き続き割り当てているため、同じオブジェクトを指しています。名前と aValues を割り当てる前に copy を呼び出します。

[playCopy setName:[name copy]];
[playCopy setAValues:[aValues copy]];
于 2012-07-27T15:44:13.110 に答える