Weakself的一种写法(转)
2015-06-25 19:18
253 查看
http://rocry.com/2012/12/18/objective-c-type-of/?utm_source=tuicool
在不久前看AFNetworking的源码时候发现了这么一句:1 2 3 4 5 6 7 8 9 10 | // 不知道这行代码的使用场景的同学你该去自习看看ARC的注意事项和Block的使用了 // AFNetworking的写法 __weak __typeof(&*self)weakSelf = self; // 我之前一直这么写的 __weak __typeof(self) weakSelf = self; // 或者这么写 __weak XxxViewController *weakSelf = self; // 或者这么写 __weak id weakSelf = self; |
正文
其实以上的4种写法都是对的AFNetworking里面不写成以上这行代码的原因是因为
typeof(self)会被解析成
XxxViewController *const __strong(假如你的self是XxxViewController的话), 这样的话就就会报错…(没有老版本, 没有验证, 不过看网上的结论应该是这样了)
不过, 如果你写成了__typeof(self)也没什么问题… 那是因为在LLVM3.1之后已经不会出现以上的情况了…
相关文章推荐
- java byte 与 int float转换
- Oracle:杀死死锁进程
- HTML 常用标签
- 简单的一个php验证登陆代码
- 51单片机 学习之旅[3] 中断-定时器
- C++ Primer学习6:const指针 和 指针与const限定符区别
- 数据结构和算法系列 - 跳跃表 SkipList
- CreateCompatibleDC工作原理
- 典型场景
- iOS网络篇---使用NSConnection 实现post和get发送和接收(同步和异步模式)
- java对象与json对象间的相互转换
- 对其它组的评价
- MySQL详解(5)-----------函数超全总结
- 部队->运维->分享->讲师历程
- MapReduce中作业调度器
- Android Material Design 5.0 PickerDialog
- 代理模式与动态代理模式
- 合体冰冰及文字水印
- 在C#中子线程如何操作主窗口线程上的控件
- 更新代码和工具,组织起来,提供所有博文(C++,2014.09)