我有一个谓词,将Bool设置为false(主要是)。昨天升级时,它在Swift 4.1中无法正常工作。
谓词是:
requestData.predicate = NSPredicate(format: "delete == %@", false as CVarArg);
如何在Core Data存储中检查此值是否为false?谢谢。
答案 0 :(得分:1)
占位符%@
用于对象,Bool
的占位符为%d
但是,如果参数为常量,则语法会更简单
requestData.predicate = NSPredicate(format: "delete == FALSE")
答案 1 :(得分:0)
您应该使用以下命令来使谓词起作用:
requestData.predicate = NSPredicate(format: "delete == NO")
不幸的是,我无法告诉您为什么使用CVarArg
的示例确实无法正常工作-但由于您的示例不需要此示例,因此我将尝试使用带有可选argumentArray
参数的其他初始化程序:{ {1}}
The documentation在布尔值部分中说:
您可以指定并测试布尔值的相等性,如以下示例所示:
init(format:argumentArray:)