我有一个组数组。每个组都有一个基本的构成;
Group {
Name : NSString
Children : NSArray
}
儿童阵列中的每个孩子都可以由某个玩家拥有
所以IE;
Child1.owner = PlayerA
玩家只能在给定的组中拥有1个子项目。
我遇到的问题是我需要写一个NSPredicate
来执行以下操作。
给我一个列表所有玩家A不拥有任何孩子的列表。
我认为,因为玩家只能在给定的组中购买一次,我应该将所有者的数组移至组中,所以这可能会使它变得更容易。
无论如何,如果有人可以将我指向如何在子儿童上过滤的方向,然后使用此信息来过滤少量的组。
非常感谢
这是代码的片段。我创建了一个虚拟数组来模拟过滤。
NSDictionary *obj1 = @{@"name":@"name1", @"children":@[@{@"owner": @"owner1"}, @{@"owner": @"owner2"}]};
NSDictionary *obj2 = @{@"name":@"name2", @"children":@[@{@"owner": @"owner1"}, @{@"owner": @"owner2"}, @{@"owner": @"owner3"}]};
NSDictionary *obj3 = @{@"name":@"name3", @"children":@[@{@"owner": @"owner1"}]};
NSArray *totalObj = @[obj1, obj2, obj3];
NSString *reqdOwner = @"owner2";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"not children.owner contains %@", reqdOwner];
NSArray *filtered = [totalObj filteredArrayUsingPredicate:predicate];
让我知道您是否需要任何帮助。