You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.3 KiB

/*
* 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 <Foundation/Foundation.h>
@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<objects.count; idx++) {
id object= objects[idx];
enumerateObjectsUsingBlock(object, idx, stop);
if (*stop ==YES) break;
}
free(stop);
}
@end