配列で最初のオブジェクトから終わりのオブジェクトに順番にそれぞれのオブジェクトにブロックを実行します。
- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block
解説
配列で最初のオブジェクトから終わりのオブジェクトに順番にそれぞれのオブジェクトにブロックを実行します。
返り値
(void)
なし
引数
(void (^)(id obj, NSUInteger idx, BOOL *stop))block
配列の要素に適用されるブロック
ブロックは3つの引数を持つ
obj
配列の要素
idx
配列の要素のインデックス
stop
ブール値への参照
YESをセットすることで配列の処理をストップする事ができる
フレームワーク
Foundation
クラス
NSArray
参照
– enumerateObjectsWithOptions:usingBlock– makeObjectsPerformSelector– makeObjectsPerformSelector:withObject
例文
#pragma mark enumerateObjectsUsingBlock: -(void)method003 { NSArray *anArray = @[@"aaa",@"bbb",@"ccc", @"ddd",@"eee",@"fff", @"ggg",@"hhh",@"iii"]; [anArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"003==>%@", [obj description]); if ([obj isEqualToString:@"ggg"]) { *stop = YES; } }]; }
#pragma mark enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block -(void)method025 { NSArray *anArray = [NSArray arrayWithObjects:@"aaa",@"bbb",@"ccc",nil]; NSString *itemToFind = @"ccc"; __block BOOL foundIt = NO;//ブロック内で変更できるように__blockを付ける //配列anArrayにcccが含まれるかどうかを探す。 [anArray enumerateObjectsUsingBlock:^(id s,NSUInteger idx,BOOL *stop){ if ([(NSString*)s isEqual:itemToFind]) { foundIt=YES; //見つけたらfoundItをYESに *stop=YES; //見つけたら検索をストップ } return; }]; NSLog(@"%s : %@", __FUNCTION__,foundIt?@"YES":@"NO"); //=>[OOOAppDelegate method025] : YES }
定義
NSArray.h