Ser*_*nce 7 iphone cocoa-touch core-data ios
我有一个名为的实体BankInfo,其中一个参数name是一个字符串.我只是想知道,有没有办法CoreData检查并查看是否name已经存在BankInfo而无需检索每个BankInfo对象并单独循环并检查?实现这一目标的最有效方法是什么?
Mar*_*n R 22
您可以使用带谓词的获取请求来查找与特定属性匹配的对象.如果您只对
具有给定键的对象存在感兴趣,请使用而不是实际获取对象,并将结果集限制为一个对象: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
Run Code Online (Sandbox Code Playgroud)
Arp*_*gre 12
对于其他喜欢我的人来说,最终在这里寻找Swift 3解决方案,这里是:
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "BankInfo")
let predicate = NSPredicate(format: "name == %@", theName)
request.predicate = predicate
request.fetchLimit = 1
do{
let count = try managedContext.count(for: request)
if(count == 0){
// no matching object
}
else{
// at least one matching object exists
}
}
catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7700 次 |
| 最近记录: |