关于weakSelf

weakSelf一般用于防止block里对self的循环引用,如果在block里用到self通常会生声明一个weakSelf.

1、关于weakSelf的声明.

__weak typeof(self) weakSelf = self;

或者定义成宏#define WeakSelf __weak typeof(self)weakSelf = self;

#define WS(weakSelf) __weak typeof(self)weakSelf = self;

#define WS(weakSelf) __weak __typeof(&*self)weakSelf = self;

2、关于typeof()关键字

typeof()是为了判断括号里边的类型。例如typeof(int)得出来的类型就是int类型

int a = 10等价于typeof(int) a = 10;

同理typeof(self) 得就来的就是self 的类型。可以动态判断类型。当然如果self是UIViewController 写成__weak UIViewController *self = self;也可以不过就显得很笨重;

3、关于__typeof(self) 和typeof(self)以及__typeof(&*self)的区别现在貌似没什么区别具体不懂。都可以。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容