macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

-enumerateObjectsUsingBlock:

INDEX>Foundation>NSArray

配列で最初のオブジェクトから終わりのオブジェクトに順番にそれぞれのオブジェクトにブロックを実行します。
- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block

解説

配列で最初のオブジェクトから終わりのオブジェクトに順番にそれぞれのオブジェクトにブロックを実行します。

返り値

(void)

なし

引数

(void (^)(id obj, NSUInteger idx, BOOL *stop))block

配列の要素に適用されるブロック
ブロックは3つの引数を持つ

obj

配列の要素

idx

配列の要素のインデックス

stop

ブール値への参照
YESをセットすることで配列の処理をストップする事ができる

クラス

NSArray

使用可能

OS X 10.6
iOS4.0

例文

#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