NSPredicate 过滤掉 parent-child objects 其中玩家拥有 none
NSPredicate to filter out parent-child objects where a player owns none
我有一组组。每组都有一个基本的make-up这个;
Group {
Name : NSString
Children : NSArray
}
children 数组中的每个 child 都可以由某个玩家拥有
即;
Child1.owner = PlayerA
一个玩家在给定组中只能拥有 1 个 child 项。
我遇到的问题是我需要编写 NSPredicate
来执行以下操作。
给我一个玩家 A 不拥有任何 children 的所有组的列表。
我在想,因为玩家只能在给定的组中购买一次东西,所以我应该将所有者数组移动到组中,这样可能会更容易。
无论如何,如果有人能告诉我如何在 sub-children 上过滤它,然后使用此信息过滤掉玩家 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];
如果您需要任何帮助,请告诉我。
我有一组组。每组都有一个基本的make-up这个;
Group {
Name : NSString
Children : NSArray
}
children 数组中的每个 child 都可以由某个玩家拥有
即;
Child1.owner = PlayerA
一个玩家在给定组中只能拥有 1 个 child 项。
我遇到的问题是我需要编写 NSPredicate
来执行以下操作。
给我一个玩家 A 不拥有任何 children 的所有组的列表。
我在想,因为玩家只能在给定的组中购买一次东西,所以我应该将所有者数组移动到组中,这样可能会更容易。
无论如何,如果有人能告诉我如何在 sub-children 上过滤它,然后使用此信息过滤掉玩家 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];
如果您需要任何帮助,请告诉我。