У меня есть две сущности. (Сделка, клиент) Сделка и клиент имеют отношения 1: 1. поэтому у сделки есть клиент, и у Клиента есть дело.coredata отношение установлено nil автоматически
Во-первых, я создал объект Customer под названием «John». второй, я сделал объект сделки и установить клиент с «John» (# 1 сделка) третий, я сделал еще один объект сделки и установить клиент с «John» (# 2 сделки)
в то время, я обнаружил некоторые проблема. это покупатель 1 комплект 1 штуки, автоматически, и заказчик 2-й сделки «Джон».
как я могу это решить?
ps1. Я получил данные с веб-сервера как JSON, как это сделок = [id: .., ..., customer: {...}]
ps2. Я обновляю объекты при получении данных с сервера.
+ (Deal *)dealWithDealsDictionary:(NSDictionary *)dic inManagedObjectContext:(NSManagedObjectContext *)context
{
Deal *deal = nil;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Deal"];
request.predicate = [NSPredicate predicateWithFormat:@"deal_id = %@", [dic[@"id"] description]];
// Execute the fetch
NSError *error = nil;
NSArray *matches = [context executeFetchRequest:request error:&error];
// Check what happened in the fetch
if (!matches || ([matches count] > 1)) { // nil means fetch failed; more than one impossible (unique!)
deal = [matches lastObject];
// handle error
} else if (![matches count]) {
deal = [NSEntityDescription insertNewObjectForEntityForName:@"Deal" inManagedObjectContext:context];
} else {
deal = [matches lastObject];
}
deal.deal_id = [dic[@"id"] description];
deal.deal_status = [dic[@"deal_status"] description];
deal.deal_stage = [dic[@"deal_stage"] description];
deal.deal_desc = [dic[@"deal_desc"] description];
deal.localized_deal_status = [dic[@"localized_deal_status"] description];
deal.localized_deal_stage = [dic[@"localized_deal_stage"] description];
if (dic[@"customer"]) {
[context performBlock:^{
deal.customer = [Customer customerWithDictionary:dic[@"customer"] inManagedObjectContext:context];
}];
}
return deal;
}
да, это .. это была моя глупая ошибка. Спасибо за ответ. – drskur