マルチピア接続を介してテキスト、画像、または連絡先を別のデバイスに送信できるアプリに取り組んでいます。次に、2 番目のデバイスのコア データに保存されます。
私がしていることは、データを NSDictionary として送信し、再度変換することです。そのため、受信デバイスに NSDictionary が残っています。では、@"objectData" のキーのオブジェクトを Core Data に保存するにはどうすればよいでしょうか?
NSString、UIImage、ABPerson で動作するようにしたいと思います。
// Create a new object in the managed object context.
Received *receivedData = [NSEntityDescription insertNewObjectForEntityForName:@"Received" inManagedObjectContext:self.managedObjectContext];
// Assign the properties based on what was input in the textfields.
// Check what type it is
NSString *dataType = [dictionary objectForKey:@"type"];
receivedData.type = dataType;
// Determine what type of data was passed over...
if ([dataType isEqualToString:@"Photo"])
{
receivedData.object = UIImageJPEGRepresentation([dictionary
objectForKey:@"object"], 0.5f);
NSLog(@"A photo saved in core data");
}
else
{
//receivedData.object = [NSKeyedArchiver archivedDataWithRootObject:[dictionary objectForKey:@"object"]];
receivedData.object = [[dictionary objectForKey:@"object"] dataUsingEncoding:NSUTF8StringEncoding];
}
// Save the managed object context.
NSError *error = nil;
[self.managedObjectContext save:&error];
データを表示するときに繰り返されるため、コアデータを変換する方法を決定するためにif、else ifステートメントを特に実行したくありません。他にできることはありますか?現在、NSKeyedArchiver タイプでエラーが発生していますが、その理由がわからないため、コメント アウトされています。
どんな助けでも大歓迎です!