Я новичок в coredata, и я создаю простую базу данных с результатом xml.
Я проверяю, существует ли запись, и если нет, добавьте новую, а затем сохраните, но когда я делаю это снова, e продолжает сохранять, а не находит запись.
Этот метод класса вызывается дважды (2 записи из xml), а затем я сохраняю в классе почты. ActivityID - это NSNumber.
Что я делаю не так?
Код:
+(CompanyActivity *)createActivityWithInfoFromServer:(NSDictionary *)activityDictFromArray inManagedObjectContext:(NSManagedObjectContext *)context {
CompanyActivity *companyActivity = nil;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"CompanyActivity" inManagedObjectContext:context];
request.predicate = [NSPredicate predicateWithFormat:@"ActivityID == %@", [activityDictFromArray objectForKey:@"ActivityID"]];
NSError *error = nil;
companyActivity = [[context executeFetchRequest:request error:&error] lastObject];
NSLog(@"activity: %@", companyActivity);
if (!error && !companyActivity) {
companyActivity = [NSEntityDescription insertNewObjectForEntityForName:@"CompanyActivity" inManagedObjectContext:context];
companyActivity.ActivityID = [NSNumber numberWithInt:[[activityDictFromArray objectForKey:@"ActivityID"] integerValue]];
companyActivity.ActivityDescription_PT = [activityDictFromArray objectForKey:@"ActivityDescription_PT"];
companyActivity.ActivityDescription_EN = [activityDictFromArray objectForKey:@"ActivityDescription_EN"];
companyActivity.DateChangedStamp = [NSDate date];
}
else
NSLog(@"no Activity created. Errors: %@", error);
return companyActivity;
}