enumerateObjectsUsingBlock

- (void)loggingArray
{
    NSArray *array = @[@"a", @"b", @"c", @"d"];
    __block NSInteger result = -1; // オブジェクト型でない変数をBlock内で操作する場合は__block修飾子が必要
    [array enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%d: %@", idx, obj);
        if ([obj isEqualToString:@"c"]) {
            result = idx;
            *stop = YES;
        }
    }];
}


2015-10-27 14:40:57.614 Xcode5Viewer[9821:90b] 0: a
2015-10-27 14:40:57.615 Xcode5Viewer[9821:90b] 1: b
2015-10-27 14:40:57.615 Xcode5Viewer[9821:90b] 2: c



// NSEnumerationReverseを設定している
- (void)loggingReverseArray
{
    NSArray *array = @[@"a", @"b", @"c", @"d"];
    __block NSInteger result = -1; // オブジェクト型でない変数をBlock内で操作する場合は__block修飾子が必要
    [array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(NSString *obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%d: %@", idx, obj);
        if ([obj isEqualToString:@"c"]) {
            result = idx;
            *stop = YES;
        }
    }];
}

2015-10-27 14:40:57.616 Xcode5Viewer[9821:90b] 3: d
2015-10-27 14:40:57.616 Xcode5Viewer[9821:90b] 2: c
最終更新:2015年10月27日 14:37