ary*_*axt 0 arrays iphone filtering objective-c nspredicate
我有一个对象数组(用户),每个用户都有一个名为"devices"的nsset.是否可以进行过滤,以便数组返回具有特定名称的设备的所有用户.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"devices.category==%@", @"mobile"];
myArray = [allUsersArray filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)
你几乎得到它,只是一点点.
每个User都有一套Devices.这意味着,当你调用[aUser valueForKeyPath:@"devices.category"],它会给你一个采集设备类别的聚集.
换句话说,如果您的用户有2个设备,并且他们(分别)拥有category"移动"和"桌面",那么"devices.category"将返回(mobile, desktop).这是一个矢量值.它包含多个元素.
但是,您将其与标量值(单个元素)进行比较,@"mobile".
我认为你想要的是想要选择至少拥有一个属于"移动"类别的设备的所有用户,对吗?如果是这种情况,那么您只需要使用ANY关键字,并因此制作谓词:
[NSPredicate predicateWithFormat:@"ANY devices.category = %@", @"mobile"]
Run Code Online (Sandbox Code Playgroud)
有关这些聚合函数的更多信息,请查看Predicate Programming Guide.
| 归档时间: |
|
| 查看次数: |
3993 次 |
| 最近记录: |