我已经写了下面的断言,但它崩溃下来的应用程序,原因是'Unable to parse the format string "(rootActivityId IN 12,13 AND (activityType == 3 OR activityType == 2)) OR (activityId IN 12,13 AND (activityType == 3 OR activityType == 2))"'
NSPredicate:无法解析格式字符串
let activityTypeClause = "(activityType == \(NSNumber(integer: ActivityType.TypeTwo)) OR activityType == \(NSNumber(integer: ActivityType.TypeOne)))"
fetchRequest.predicate = NSPredicate(format: "(rootActivityId IN \(activityIds) AND \(activityTypeClause)) OR (activityId IN \(activityIds) AND \(activityTypeClause))")
// activityIds contains coma separated string
我无法揣摩出我做错了。
由于'NSPredicate'几乎是肯定还是Objective-C的可能是笔者的需求,遗憾的是,至使用谓词打算的printf样式格式来构建他的谓词。没有字符串插值。然后Swift集合到Objective-C集合映射应该可以工作。这是我在阅读本文时的反应,已经是正确的答案。 – Tommy