我有一个名为ActionImage的核心数据表,其中包含字段image和actionid现在我想检查我要保存的新图像是否已保存带有actionid的图像。我有这个代码来检查其他值,但它不使用二进制数据
class func valueExistWhere(key:String, value:Any) -> Bool {
let fetchRequest:NSFetchRequest<ActionImage> = ActionImage.fetchRequest()
let predicate = NSPredicate(format: "\(key)=\(value)")
var data:[ActionImage] = []
fetchRequest.predicate = predicate
fetchRequest.fetchLimit = 1
do{
data = try CoreDataStack.getContext().fetch(fetchRequest)
if(data.count > 0)
{
return true
}
else
{
return false
}
}
catch{
print("Error: \(error)")
return false
}
}
答案 0 :(得分:0)
谓词格式只是一个字符串。它是如何构造的严格定义,不能只是降低值并期望它起作用(虽然它经常这样)。
更改
let predicate = NSPredicate(format: "\(key)=\(value)")
到
let predicate = NSPredicate(format: "%K = %@", key, value)