iOS开发 ☞ __block,__weak,__strong
2016-07-27 14:53
225 查看
结论,对于局部变量,block中可以访问到,但是不能修改,如果要修改,就要在这个局部变量前面加上__block;
众所周知,__weak是防止block中循环应用,而__strong是防止block执行中weakSelf被释放了,这里__strong需要在block中持有,若在block外持有会导致循环引用,如果在block中,strongSelf调不起方法,说明在执行block前weak self已经被释放了。
__block int time = 100; self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)); dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0); dispatch_source_set_event_handler(self.timer, ^{ time -= 1; NSLog(@"%d",time); }); dispatch_resume(self.timer);
众所周知,__weak是防止block中循环应用,而__strong是防止block执行中weakSelf被释放了,这里__strong需要在block中持有,若在block外持有会导致循环引用,如果在block中,strongSelf调不起方法,说明在执行block前weak self已经被释放了。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法