我有多个类别列表(约45)。我想展示一些类似的东西(直升机,怪物湖,恐龙攻击),在这个重新开始之后会出现的其他类别将会出现。我已经使用了下面的代码。NSPredicate安排NSMutableArray对象?
这工作正常。但它很漫长。所以我想过滤这些代码。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", @[@"Helicopter", @"Lake Monster",@"Dinosaur Attack"]];
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"packageName CONTAINS[cd] %@", @"Helicopter"];
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"packageName CONTAINS[cd] %@", @"Lake Monster"];
NSPredicate *predicate3 = [NSPredicate predicateWithFormat:@"packageName CONTAINS[cd] %@", @"Dinosaur Attack"];
NSMutableArray *filteredArray = [[NSMutableArray alloc]init];
NSArray *arr1=[packages filteredArrayUsingPredicate:predicate1];
NSArray *arr2=[packages filteredArrayUsingPredicate:predicate2];
NSArray *arr3=[packages filteredArrayUsingPredicate:predicate3];
[filteredArray insertObject:[arr1 objectAtIndex:0] atIndex:0];
[filteredArray insertObject:[arr2 objectAtIndex:0] atIndex:1];
[filteredArray insertObject:[arr3 objectAtIndex:0] atIndex:2];
[packages removeObject:[arr1 objectAtIndex:0]];
[packages removeObject:[arr2 objectAtIndex:0]];
[packages removeObject:[arr3 objectAtIndex:0]];
那么有什么办法用最短的方法来实现这个结果?
其漂亮GUD。但它可能只有一个NSPredicate可以实现这一点 –