プレフィックスが「be」のすべてのオブジェクトを抽出したいのですが、さまざまなインデックスからすべてではなく、最初のオブジェクトのみを取得します。「配列」にはさまざまなオブジェクトが含まれ、「be」、「become」、「beta」、「be」、「beaver」などのオブジェクトが含まれています。ここで何が問題になっていますか?
を使用するlocalizedCaseInsensitiveCompare:
と、「」に関して正しい2つの「be」のみが表示されisEqualToString:
ます。「array」には、実際には異なるインデックスからの2つの「be」が含まれています。
コードは次のとおりです。
NSString *string =@"be";
NSRange range = NSMakeRange(0, 24);
NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange: range];
[array enumerateObjectsAtIndexes:indexSet options: NSEnumerationConcurrent usingBlock:^(id obj, NSUInteger index, BOOL *stop)
{
//if([obj localizedCaseInsensitiveCompare:string] == NSOrderedSame)
if([obj hasPrefix:string])
{
NSLog(@"Object Found: %@ at index: %i",obj, index);
*stop=YES;
}
} ];