在Xcode9.3更新之后,我注意到如果你想要像这样的谓词:
let predicate = NSPredicate(format: "preferred = %@", true as CVarArg)你出车祸了。但在Xcode9.2中,这不是问题。有什么想法吗?
发布于 2018-05-17 18:42:17
//解决方案3[ Apple Documentation ]
let predicate = NSPredicate(format: "preferred == TRUE")因为true不是一个对象(%@),所以会发生异常。您需要%d占位符
let predicate = NSPredicate(format: "preferred = %d", true)发布于 2018-05-17 18:24:51
经过一些调查,我发现了如何解决这个问题。简而言之:
// Solution 1 [ NSNumber ]
let bool = NSNumber(booleanLiteral: true)
let predicate = NSPredicate(format: "preferred = %@", bool as CVarArg)
// Solution 2 [ Bool ] (static example)
let predicate = NSPredicate(format: "preferred == YES")正如here所解释的,当我们必须处理这类方法时,最好使用Obj-C类型,而不是Swift类型。
发布于 2018-05-17 18:27:50
我认为你也可以使用这个:
NSPredicate(format: "preferred = true")https://stackoverflow.com/questions/50389112
复制相似问题