0
接頭辞「be」を持つすべてのオブジェクトを抽出しますが、最初のオブジェクトのみを取得します。 「配列」にはさまざまなオブジェクトが含まれており、「be」、「become」、「beta」、「be」、「beaver」などのオブジェクトが含まれています。Objective-c enumerateUsingBlock問題
localizedCaseInsensitiveCompare:
を使用すると、 "isEqualToString:
"で正しい "be"が2つだけ表示され、 "array"は異なるインデックスから実際に2つの "be"を含みます。
コードは以下の通りです:あなたは*stop = YES
回線を介して単一の結果を見つけるとあなたはとすぐにループを止めるため
NSString *string [email protected]"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;
}
} ];
ああ、あなたは正しいです!私の愚かな質問には申し訳ありません。ところで、あなたは 'indexesOfObjectsPassingTest:'の例を挙げることができますか? – wagashi