我正在研究Core Data。我需要在Core Data中保留bandID的唯一值。 在我的数据模型中我有
bandImagePath
bandID ---------------primary Key
bandName
代码:
-(IBAction)addToFavButtonPressed:(id)sender
{
NSLog(@"add to fav button clicked");
SongRequestAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *addToFav;
addToFav = [NSEntityDescription insertNewObjectForEntityForName:@"AddToFav" inManagedObjectContext:context];
[addToFav setValue:self.imageUrl forKey:@"bandImagePath"];
NSLog(@"band image path url is %@",self.imageUrl);
[addToFav setValue:self.bandName forKey:@"bandName"];
NSLog(@"band name is %@",self.bandName);
[addToFav setValue:self.bandId forKey:@"bandId"];
NSLog(@"band ID is %@",self.bandId);
//NSLog(@"eno is %@",eno.text);
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
}
答案 0 :(得分:2)
简短回答:你不能,自动。
答案很长:Core Data没有提供将属性指定为“唯一”的方法。有几个原因。请放心,如果这是一件容易的事情,那么很久以前就会提出来。那么你如何解决它?基本上,您必须先使用指定的bandId
check to see if an AddToFav
exists。如果是,则不创建新的。如果没有,那么你可以。