/* * Copyright (c) 2015 - present Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ #import @interface MyBlock : NSObject @end @implementation MyBlock -(void) array { NSArray *a = [[NSArray alloc] init]; [a enumerateObjectsUsingBlock:^(id object, NSUInteger idx, BOOL *stop) { int ShouldStop; /* ... do something here... */ if (ShouldStop ) { *stop= YES; }; }]; } -(void) array_trans { NSArray *a = [[NSArray alloc] init]; NSArray *objects = a; // The call to the iterator in the above function is translated as: void (^enumerateObjectsUsingBlock)(id, NSUInteger, BOOL *)= ^(id object, NSUInteger idx, BOOL* stop) { int ShouldStop; if (ShouldStop) { *stop= YES; }; }; BOOL *stop = malloc(sizeof(BOOL)); *stop = NO; for (NSUInteger idx=0; idx