This question already has answers here:
How to write a BOOL predicate in Core Data?
(6个答案)
去年关门了。
这就是Xcode 9.2中的代码:
let request: NSFetchRequest<MyModel> = MyModel.fetchRequest()
request.predicate = NSPredicate(format: "saved = %@", true as CVarArg)

在更新到Xcode 9.3和Swift 4.1之后,代码崩溃了:
线程1:EXC_BAD_ACCESS(代码=1,地址=0x1)
这是撞车的部分
NSPredicate(format: "saved = %@", true as CVarArg)

MyModel实体的saved属性声明为boolean。为什么这件事开始发生,但它以前起过作用?

最佳答案

您不必过度复杂化它,如果您总是在寻找saved=true,那么只需在谓词中使用字符串文本。

NSPredicate(format: "saved == true")

10-08 16:01