0

有什么方法可以使用 int 值生成所有这些数组?...我不想复制/粘贴这么多,因为在我的下一个视图控制器中我将拥有大约 86 个数组。任何帮助是极大的赞赏。

谢谢!!

NSPredicate *parentPredicate1 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"1"]; 
}];
NSPredicate *parentPredicate2 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"2"];
}];
NSPredicate *parentPredicate3 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"3"];
}];
NSPredicate *parentPredicate4 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"4"];
}];
NSPredicate *parentPredicate5 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"5"];
}];
NSPredicate *parentPredicate6 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"6"];
}];
NSPredicate *parentPredicate7 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"7"];
}];
NSPredicate *parentPredicate8 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"8"];
}];
NSPredicate *parentPredicate9 = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{
    return [evaluatedObject[@"parent_id"] isEqual:@"9"];
}];

childID_1 = [parentArray filteredArrayUsingPredicate:parentPredicate1];
childID_2 = [parentArray filteredArrayUsingPredicate:parentPredicate2];
childID_3 = [parentArray filteredArrayUsingPredicate:parentPredicate3];
childID_4 = [parentArray filteredArrayUsingPredicate:parentPredicate4];
childID_5 = [parentArray filteredArrayUsingPredicate:parentPredicate5];
childID_6 = [parentArray filteredArrayUsingPredicate:parentPredicate6];
childID_7 = [parentArray filteredArrayUsingPredicate:parentPredicate7];
childID_8 = [parentArray filteredArrayUsingPredicate:parentPredicate8];
childID_9 = [parentArray filteredArrayUsingPredicate:parentPredicate9];

_allArrays = [[ NSMutableArray alloc] initWithObjects:childID_1, childID_2, childID_3, childID_4, childID_5, childID_6, childID_7, childID_8, childID_9, nil];

}

4

2 回答 2

1

使用循环

NSMutableArray *childObjects = [NSMutableArray array];

for (NSUInteger i = 1; i < N; i++)
{
    NSPredicate *parentPredicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
        NSString *value = [@(i) stringValue];
        return [evaluatedObject[@"parent_id"] isEqual:value];
    }];

    [childObjects addObject:[parentArray filteredArrayUsingPredicate:parentPredicate]];
}
于 2013-09-16T22:57:38.477 回答
1

块可以使用局部变量,因此您可以将它们放入循环中

_allArrays = [[ NSMutableArray alloc] init];

for (int i = 0; i < 10; i++)
{

    NSPredicate *parentPredicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, 
    NSDictionary *bindings)
    {
        return [evaluatedObject[@"parent_id"] isEqual:[NSString stringWithFormat:@"%d", i]]; 
    }];
    [_allArrays addObject:[[parentArray filteredArrayUsingPredicate:parentPredicate]]];
}
于 2013-09-16T22:57:59.927 回答