Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSPredicate筛选出玩家不拥有的父子对象_Objective C_Arrays_Filtering_Nspredicate - Fatal编程技术网

Objective c NSPredicate筛选出玩家不拥有的父子对象

Objective c NSPredicate筛选出玩家不拥有的父子对象,objective-c,arrays,filtering,nspredicate,Objective C,Arrays,Filtering,Nspredicate,我有一组人。每个小组都有这方面的基本组成 Group { Name : NSString Children : NSArray } 子数组中的每个子数组都可以由某个玩家拥有 所以, Child1.owner = PlayerA 一个玩家在一个给定的组中只能拥有一个子项 我遇到的问题是,我需要编写一个NSPredicate来执行以下操作 给我一个玩家a没有任何孩子的所有组的列表 我在想,因为一个玩家在一个给定的组中只能购买一次东西,所以我应该将所有者的数组向上移动到多个组中,这样可能会

我有一组人。每个小组都有这方面的基本组成

Group {
  Name : NSString
  Children : NSArray
}
子数组中的每个子数组都可以由某个玩家拥有

所以,

Child1.owner = PlayerA
一个玩家在一个给定的组中只能拥有一个子项

我遇到的问题是,我需要编写一个NSPredicate来执行以下操作

给我一个玩家a没有任何孩子的所有组的列表

我在想,因为一个玩家在一个给定的组中只能购买一次东西,所以我应该将所有者的数组向上移动到多个组中,这样可能会更容易

无论如何,如果有人能告诉我如何在子代上过滤,然后使用这些信息过滤出不涉及玩家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];

如果您需要帮助,请告诉我。

您的答案适用于词典。我需要为我的自定义对象自定义它,但我会接受。