Akses buruk saat membuat instance NSPredicate [duplikat]

Jadi ini kode yang berfungsi di Xcode 9.2:

let request: NSFetchRequest<MyModel> = MyModel.fetchRequest()
request.predicate = NSPredicate(format: "saved = %@", true as CVarArg)

dan setelah pembaruan ke Xcode 9.3 dan Swift 4.1, kodenya mogok:

Thread 1: EXC_BAD_ACCESS (kode=1, alamat=0x1)

Ini adalah bagian yang crash

NSPredicate(format: "saved = %@", true as CVarArg)

Properti tersimpan entitas MyModel dinyatakan sebagai boolean. Mengapa hal ini mulai terjadi tetapi sebelumnya berhasil?


person Whirlwind    schedule 04.04.2018    source sumber
comment
Gunakan NSNumber(value: true) sebagai gantinya. stackoverflow.com/a/34631602/3151675   -  person Tamás Sengel    schedule 04.04.2018


Jawaban (1)


Anda tidak perlu memperumitnya, jika Anda selalu mencari disimpan = benar maka gunakan saja string literal dalam predikat Anda.

NSPredicate(format: "saved == true")
person rodfleischer    schedule 04.04.2018