我的应用使用多个tableViews。
它包含一个具有NSMutableArray的RootViewController,名为mainArray,带有id,parent_id,title,subtitle,description。
在我的SecondTableViewController中,我需要根据parent_id从mainArray创建一个childArray,这样我就可以填充tableviewcells了。
我需要my childArray1只包含每个parent_id = 1 childArray2的id,title,subtitle,以便只包含每个parent_id = 2的id,title,subtitle等等。
是否有一些提示可以做到这一点?
答案 0 :(得分:0)
尝试使用字典,我想更好
NSDictionary *parent = @{@"id":@(1),@"title":@"Root",@"subtitle":@"my subtitle",@"description":@"something"};
NSDictionary *child1 = @{@"id":@(2),@"title":@"Child 1",@"subtitle":@"lalalala",@"description":@"something",@"parent":parent};
NSDictionary *child2 = @{@"id":@(3),@"title":@"Child 2",@"subtitle":@"lelelele",@"description":@"something",@"parent":child1};
//so now, you can do something like
child2[@"parent"][@"id"]; // 2
child2[@"parent"][@"parent"][@"title"]; // root
答案 1 :(得分:0)
由于您的JSON表明您的NSArray包含NSDictionary对象,因此您可以执行以下操作:
NSPredicate *parentPredicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
return evaluatedObject[@"parent_id"] == 1; //set this id to different value to get children of different parent
}];
NSArray *childArray = [parentArray filteredArrayUsingPredicate:parentPredicate];
您可以将parent_id
设置为其他值,以获取parent_id
的子数组。