我有一个名为 originalListArray 的主数组,包含多个对象。这是对象的示例。 Example.json
我想找到 originalListArray 中的对象数量,其中amenity_id与我的过滤数据匹配。 我已经这样做了,创建一个谓词,使用 ANY 而不是自我,因为NSArray使用NSDictionary,并且该Dictionary对象可能有NSArray数据。
这很好。
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"ANY amenities.amenity_id =='1')"];
这不起作用。
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"ANY amenities.amenity_id in ('1','2','3')"];
因此可以轻松过滤单个值,但是使用IN操作它的崩溃和错误是这样的。
由于未捕获的异常'NSInvalidArgumentException'而终止应用,原因:'无法解析格式字符串“ANY amenities.amenity_id in('1','2','3')”'< / EM>
先谢谢,如果有人可以帮助我。
答案 0 :(得分:2)
我认为将数组作为%@
占位符的参数传递会更好。
[NSPredicate predicateWithFormat:@"ANY amenities.amenity_id IN %@", @[@"1",@"2",@"3"]]
这样,您可以手动创建阵列,如果需要更改它,则更容易。
如果您仍然希望手动更改&#34;字符串格式&#34;:
[NSPredicate predicateWithFormat:@"ANY amenities.amenity_id IN {'1', '2', '3'}"]