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"];
.. и все готово.