2

所以这是在 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 实体的已保存属性声明为布尔值。为什么这开始发生但之前有效?

4

1 回答 1

3

您不必过于复杂,如果您一直在寻找 saved = true ,那么只需在谓词中使用字符串文字。

NSPredicate(format: "saved == true")
于 2018-04-04T15:04:07.887 回答