2台のiPhone間で、CoreDataを介して管理されている情報を交換したいアプリケーションがあります。
まず、Core DataオブジェクトをNSDictionaryに変換します(転送されるNSDataに変換される非常に単純なもの)。
私のCoreDataには、3つの文字列属性と、変換可能な2つの画像属性があります。
NSDictionary APIを調べましたが、CoreData情報を作成または追加することはできませんでした。
これに関するヘルプやサンプルコードをいただければ幸いです。
2台のiPhone間で、CoreDataを介して管理されている情報を交換したいアプリケーションがあります。
まず、Core DataオブジェクトをNSDictionaryに変換します(転送されるNSDataに変換される非常に単純なもの)。
私のCoreDataには、3つの文字列属性と、変換可能な2つの画像属性があります。
NSDictionary APIを調べましたが、CoreData情報を作成または追加することはできませんでした。
これに関するヘルプやサンプルコードをいただければ幸いです。
Core Data オブジェクトをネットワーク経由でプッシュする前に、JSON などの中間形式に変換することをお勧めします。NSManagedObjectインスタンスを JSON に変換したり、JSON から変換したりする方法に関するコードは、別の投稿で書きました。
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"];
..これで完了です。