我有一个名为BankInfo的实体,其中一个参数是name,它是一个字符串.我只是想知道,CoreData中是否有一种方法可以检查并查看BankInfo中是否已存在名称,而无需检索每个BankInfo对象并单独循环并检查?实现这一目标的最有效方法是什么?
解决方法
您可以使用带谓词的获取请求来查找与特定属性匹配的对象.
如果你只对存在感兴趣
对于具有给定键的对象,使用countForFetchRequest而不是实际获取对象,并将结果集限制为一个对象:
如果你只对存在感兴趣
对于具有给定键的对象,使用countForFetchRequest而不是实际获取对象,并将结果集限制为一个对象:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"BankInfo"]; [request setPredicate:[NSPredicate predicateWithFormat:@"name = %@",theName]]; [request setFetchLimit:1]; NSUInteger count = [context countForFetchRequest:request error:&error]; if (count == NSNotFound) // some error occurred else if (count == 0) // no matching object else // at least one matching object exists