领域:使用IN运算符过滤

时间:2016-03-06 09:22:21

标签: swift realm

我有一个整数数组:

▿ 2 elements
  - [0] : 123459
  - [1] : 1031020

并希望根据数组过滤我的对象。

.filter("code IN \(myCodeArray)")

但这会导致崩溃。如何正确使用IN运算符?

1 个答案:

答案 0 :(得分:12)

不应使用Swift的字符串插值,而应通过NSPredicate使用%@的参数替换支持:

.filter("code IN %@", myCodeArray)

Swift的字符串插值语法("\(someVariable)")将变量的字符串表示形式插入到字符串中。整数数组的字符串表示形式为[123459, 1031020],即not valid in an NSPredicate format string。使用%@将对象替换为谓词,而无需担心对象的Swift字符串表示是否与NSPredicate期望的匹配。