NSManagedObject は NSCoding プロトコルに準拠していないため、マネージド オブジェクトを直接データに変換することはできません。
代わりに、インスタンス属性を含むディクショナリを返すメソッドをマネージド オブジェクト サブクラスに追加し、受信側でそれらを使用してローカル コンテキストで新しいマネージド オブジェクトを作成するだけです。
編集:
コメントから:
現在、私は送信側のために持っています..
NSData* data;
NSString *str0 = [NSString stringWithFormat:@"%@",[[person valueForKey:@"PersonName"] description]];
NSString *str1 = [NSString stringWithFormat:@"%@",[[person valueForKey:@"alias"] description]];
NSMutableDictionary *taskPrototype = [NSMutableDictionary dictionary];
[taskPrototype setObject:str0 forKey:@"PersonName"];
[taskPrototype setObject:str1 forKey:@"alias"];
data = ?????;
//I do not know what to put here... [self mySendDataToPeers:data];
私が持っている受信側で...
NSMutableDictionary *trial = [[NSMutableDictionary alloc] initWithData:data];
NSString *str0a = ???? NSString *str1a = ????
//I dont know what to put after this to retrieve the values and keys from the dictionary
プロセスを逆にして、受信側で管理対象オブジェクトを作成するだけです。
NSMutableDictionary *trial = [[NSMutableDictionary alloc] initWithData:data];
NSManagedObject *person=[NSEntityDescription insertNewObjectForEntityForName:@"PersonEntity" inManagedObjectContext:moc];
[person setValue:[trial objectForKey:@"PersonName"] forKey:@"PersonName"];
[person setValue:[trial objectForKey:@"alias"] forKey:@"alias"];
..これで完了です。