Использовать предикат SELF != ''
, если вы фильтруете только массив из NSString
s. Это соответствует каждому NSString
, который не точно равен пустой строке.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF != ''"];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
Пример код:
NSArray *array = @[@"A", @"B", @"", @"C", @"", @"D"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF != ''"];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
NSLog(@"Input array: %@\nFiltered array: %@", [array componentsJoinedByString:@","], [filteredArray componentsJoinedByString:@","]);
дает этому выходу
Input array: A,B,,C,,D
Filtered array: A,B,C,D
редактирование: Джорис Kluivers размещен решению с форматом предикат length > 0
. Это, вероятно, лучшее решение для удаления пустой строки, поскольку она, вероятно, будет намного быстрее.
работает как шарм :) – DanielR