在swift中NSPredicate'IN'运算符格式化问题.无法解析格式字符串

Ish*_*wal 4 core-data nspredicate ios swift

我在尝试创建NSPredicate对象时遇到异常,如下所示:

let searchPredicate = NSPredicate(format: "addonCategoryId IN \(idsArray)")
Run Code Online (Sandbox Code Playgroud)

其中idsArrayIntswift数组中的对象组成.这条线本身就有例外.控制台说:

2015-10-08 08:21:42.878 bkApp [2569:510538]***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'无法解析格式字符串"addonCategoryId IN [5404,5406]"'

可能是什么问题?谢谢参观.:)

Cod*_*ent 6

NSPredicate仍然期待Objective-C样式格式字符串.你使用了字符串插值.

let searchPredicate = NSPredicate(format: "addonCategoryId IN \(idsArray)")
// result: addonCategoryId IN [5404, 5406]
Run Code Online (Sandbox Code Playgroud)

试试这个:

let searchPredicate = NSPredicate(format: "addonCategoryId IN %@", idsArray)
// result: addonCategoryId IN {5404, 5406}
Run Code Online (Sandbox Code Playgroud)

差异是微妙的[],{}但如果NSPredicate不喜欢它,它不喜欢它.