我正在尝试将唯一值
添加到我的sqlite
数据库中。
我试图在 .xcdatamodeld
中创建唯一属性,但我没有成功。
这部分代码添加了表F016Terminaison
中的所有terminaison
。如何只添加唯一的终止值
?
for (NSString *terminaison in [[verbe objectForKey:temps] objectForKey:@"terminaison"])
{
F016Terminaison *newTerminaison = [NSEntityDescription insertNewObjectForEntityForName:@"F016Terminaison" inManagedObjectContext:self.managedObjectContext];
newTerminaison.name = terminaison;
}
最佳答案
每次调用 insertNewObjectForEntityForName
都会创建一个新对象并将其插入到
托管对象上下文。
如果您只想要唯一值,则必须首先检查是否有具有该值的对象
已经存在。这是通过带有谓词的 NSFetchRequest
完成的
[NSPredicate predicateWithFormat:@"name == %@", terminaison];
如果你必须插入很多值,那么获取所有对象会更有效 首先来自新列表的值,而不是许多获取请求。
比较 "Implementing Find-or-Create Efficiently"在《核心数据编程指南》中。
关于ios - 如何使用核心数据在数据库中仅添加单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658987/