2

NSMutableArrayオブジェクトが次のようなカスタム クラスのインスタンスであるのディープ コピーを作成しようとしています。

@interface CustomParent : NSObject
@property NSInteger Id;
@property (strong, nonatomic) NSString *IdStr;
@property (weak, nonatomic) NSDate *Date; 
@property (strong, nonatomic) NSMutableArray *CustomChildren;
@property (strong, nonatomic) CustomType *Type;
@property float Value;
@end

オブジェクトのコピーを扱う記事がたくさんあることは知っていますが、コレクションのメンバーやプロパティを持つオブジェクトの完全なコピーを取得する例が見つかりません。NSMutableArray *dstArray = [[NSMutableArray alloc] initWithArray:srcArray copyItems:YES];メソッドに関連する例外を発生させますcopyWithZone

これどうやってするの?ありがとう!

4

1 に答える 1

13

配列の内容をディープコピーするには

[[NSMutableArray alloc] initWithArray:srcArray copyItems:YES];

copyWithZone:コレクション内のすべてのオブジェクトに送信されます。このセレクターに応答しない場合、クラッシュが発生します。

CustomParentクラスをNSCopyingプロトコルに準拠させれば完了です。

それを達成する方法に関する追加情報を次に示します

于 2013-06-27T13:35:49.063 に答える