如何在Iphone核心数据中实现主键

时间:2011-03-26 07:44:55

标签: iphone core-data primary-key

我正在研究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]);
    }       
}

1 个答案:

答案 0 :(得分:2)

简短回答:你不能,自动。

答案很长:Core Data没有提供将属性指定为“唯一”的方法。有几个原因。请放心,如果这是一件容易的事情,那么很久以前就会提出来。那么你如何解决它?基本上,您必须先使用指定的bandId check to see if an AddToFav exists。如果是,则不创建新的。如果没有,那么你可以。