使NSManagedObject
屬性具有唯一性的最佳方法是什麼?唯一NSManagedObject屬性
例如,應該使用willSave
或validateForInsert:
或validateForUpdate:
管理對象方法來檢查在attributeUnique
中輸入的值是否爲Unique?而且,究竟如何?
使NSManagedObject
屬性具有唯一性的最佳方法是什麼?唯一NSManagedObject屬性
例如,應該使用willSave
或validateForInsert:
或validateForUpdate:
管理對象方法來檢查在attributeUnique
中輸入的值是否爲Unique?而且,究竟如何?
我最後寫一個NSManagedObject
類中的方法,以及使用NSManagedObject
的驗證方法:
- (BOOL)isValueUniqueForKey:(NSString *)key {
NSEntityDescription *entity = [NSEntityDescription entityForName:[self.entity name]
inManagedObjectContext:self.managedObjectContext];
id value = [self valueForKey:key];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ = %@", key, value];
fetchRequest.predicate = predicate;
NSError *error = nil;
NSUInteger count = [self.managedObjectContext countForFetchRequest:fetchRequest
error:&error];
if (count > 1) {
return NO;
}
return YES;
}
您的處方不完整 - 您只是編寫了一個基本代碼,用於驗證某個屬性值在對象圖中不會出現兩次或多次。 –
您的處方不完整 - isValueUniqueForKey:僅驗證屬性值在對象圖中不會出現兩次或更多次。你沒有告訴你使用了什麼NSMnaagedOBject的驗證方法。它是否validateForInsert:? validatForUpdate:驗證
http://stackoverflow.com/questions/2253378/coredata-unique-objects-by-attribute –