首页 > 代码库 > IOS block的一些用法例子
IOS block的一些用法例子
首先用一张图解释block的结构:
按照调用函数的方式调用块对象变量就可以了:
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的一些用法例子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。