Jem*_*Jem 5 core-data objective-c
我对Core Data很陌生.我的理解是它是一个对象图管理器,它与数据库不同.其中,一些功能将由程序员实现.
在编写一些在coredata框架中具有更好和更优化的对应物的逻辑之前:是否可以添加唯一键?比如entityA.name=@"jem",entityB.name=@"jem"由于名称已经被使用,未能插入entityB?
谢谢:-)嗯.
小智 10
核心数据是一个非常多的数据库,用于设置实体和属性的GUI只是其中的一部分.我不相信已经有拒绝非唯一键的功能,但你可以做这样的事情来在插入新实体之前运行检查:
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
BOOL unique = YES;
NSError *error;
NSArray *items = [managedObjectContext executeFetchRequest:request error:&error];
if(items.count > 0){
for(Person *thisPerson in items){
if([thisItem.name isEqualToString: nameToEnter]){
unique = NO;
}
}
}
if(unique){
CartItem *thisItem = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
thisItem.name = nameToEnter;
NSError *error;
if (![self.managedObjectContext save:&error]) {
return;
}
}
Run Code Online (Sandbox Code Playgroud)
你应该好
| 归档时间: |
|
| 查看次数: |
1785 次 |
| 最近记录: |