iOS开发之Block常见用法

来源:互联网 发布:java中for循环语句例子 编辑:程序博客网 时间:2024/06/05 18:57

Block的常见几个用途

1.简化枚举

1234
NSArray *array = ...    [array enumerateObjectsUsingBlock:^ (id obj, NSUInteger idx, BOOL *stop) {        NSLog(@"Object at index %lu is %@", idx, obj);    }];

2.简化并发任务

  • 使用于OperationQueue
1234567891011
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{    ...}];// schedule task on main queue:NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];[mainQueue addOperation:operation];// schedule task on background queue:NSOperationQueue *queue = [[NSOperationQueue alloc] init];[queue addOperation:operation];
  • 使用于GCD
12345
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_async(queue, ^{    NSLog(@"Block for asynchronous execution");});
0 0
原创粉丝点击