Dur*_*sad 2 nsset nspredicate ios
我有两个NSSet.一个包含所有UserKeys,另一个包含在线用户密钥.我想在这两个部分中显示这些值.第1节 - 在线用户和第2节 - 其他用户
我使用下面的谓词做了这个.
NSSet *nsset1 = [NSSet setWithArray:attendeesService.arrof_attendeeList]; //this are all users
nsset2 = [NSSet setWithArray:tempArray]; // temparray contains all online users.
NSSet *nsset2_ids = [nsset2 valueForKey:@"UserProfileKEY"];
nsset1_minus_nsset2 = [nsset1 filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"NOT UserProfileKEY IN %@",nsset2_ids]];
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是所有用户大约3000+,在线可能一次超过200+.所以需要花费很多时间.4-5名在线用户需要1分钟.因此,200多名在线用户将花费更多时间.有更快的解决方案吗?
谢谢.
使用minusSetfromNSMutableSet
minusSet:从接收集中移除另一个给定集中的每个对象(如果存在).
NSMutableSet *nsset1 = [NSMutableSet setWithArray: attendeesService.arrof_attendeeList];
NSSet *set2 = [NSSet setWithArray: tempArray];
[nsset1 minusSet: set2];
NSArray *nsset1_minus_nsset2 = [nsset1 allObjects];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |