如何检查二进制数据(图像)是否已保存在核心数据中?

时间:2017-07-02 18:19:38

标签: ios swift core-data

我有一个名为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
        }
    }

1 个答案:

答案 0 :(得分:0)

谓词格式只是一个字符串。它是如何构造的严格定义,不能只是降低值并期望它起作用(虽然它经常这样)。

更改

let predicate = NSPredicate(format: "\(key)=\(value)")

let predicate = NSPredicate(format: "%K = %@", key, value)