我已經寫了下面的斷言,但它崩潰下來的應用程序,原因是'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