码迷,mamicode.com
首页 > 移动开发 > 详细

IOS block的一些用法例子

时间:2014-11-21 16:21:24      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:ios block   block例子   

首先用一张图解释block的结构:

bubuko.com,布布扣


按照调用函数的方式调用块对象变量就可以了:
int result = myBlock(5); // result是 35


例子1:利用block延迟方法的执行

/**
 * 在主线程中延迟调用方法
 *
 * @param block 方法主体block块
 * @param delay 延迟delay秒
 */
- (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay
{
    int64_t delta = (int64_t)(1.0e9 * delay);
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delta), dispatch_get_main_queue(), block);
}

调用方法:

    [self performBlock:^{
        // 主线程中处理的事件
    } afterDelay:0.5];


例子二:强制在主线程中调用方法:

/**
 * 强制在主线程中调用方法
 *
 * @param block 方法主体block块
 */
- (void)runOnMainQueueWithBlock:(void (^)(void))block{
    if(dispatch_get_current_queue() == dispatch_get_main_queue()) {
        block();
    }
    else {
        dispatch_sync(dispatch_get_main_queue(), block);
    }
}

调用方法:

[self runOnMainQueueWithBlock:^{
    // 在主线程调用方法
}];




IOS block的一些用法例子

标签:ios block   block例子   

原文地址:http://blog.csdn.net/dengbin9009/article/details/41348579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!