NSArray で特定の長さの文字列を取得したい。
配列には多くの要素があり、高速な列挙を使用したくありません。
可能な方法はありますか?
NSArray で特定の長さの文字列を取得したい。
配列には多くの要素があり、高速な列挙を使用したくありません。
可能な方法はありますか?
これは魅力のように機能します:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.length == %d", lenght];
NSArray *filtered = [array filteredArrayUsingPredicate:predicate];
何をするにしても、気づいているかどうかにかかわらず、高速な列挙を使用することになります。しかし、NSPredicate オブジェクトとfilteredArrayWithPredicate
メソッドの使用を検討したことはありますか?
NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Apple, Orange, Grapes, Cherry, nil"];
for(NSString *element in yourArray){
if(element.length==yourLength){
[filteredArray addObject:element];
}
}
NSLog(@"Filtered array now contains the elements with length %d", yourLength);
NSLog(@"Filtered array--%@", filteredArray);