CoreData 使ってユニークキーもどきを NSManagedObject.valideateForInsert 内で判断してみた
- (BOOL)validateForInsert:(NSError **)error {
NSLog(@"validateForInsert:%@", self.id);
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Hoge"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K = %@", @"id", self.id];
[fetchRequest setPredicate:predicate];
NSArray *results = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];
if (results.count > 0) {
return NO;
}
return YES;
}