Это правильный и самый эффективный способ удалить пустую строку из NSArray? - PullRequest
6 голосов
/ 21 августа 2011

Это правильный и наиболее эффективный способ удаления пустой строки из NSArray?

int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSMutableArray *myStrings = [NSMutableArray arrayWithObjects:(id[]){@"Test 1",@"",@"Test 2",@"Test 3",@""} count:5];
    NSArray *myFilteredArray = [myStrings filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"length > 0"]]; //Non-destructive, myStrings is still intact

    NSLog(@"The original array is: %@",myStrings);
    NSLog(@"The filtered array is: %@",myFilteredArray);

    [myStrings removeObject:@""]; //Destructive. myStrings will never be the same again
    NSLog(@"The altered is: %@",myStrings);
    [pool drain];
    return 0;
}

1 Ответ

6 голосов
/ 21 августа 2011

Я бы сказал, что removeObject - самый эффективный способ удаления пустых объектов из вашего массива. NSPredicate следует использовать для более сложных структур, так что в этом отношении это является излишним, поскольку вы можете использовать removeObject.

...