weakSelf 写法(OC+Swift)
2018-05-28 本文已影响0人
iOS_我更专业
经常用Block传值,所以我们经常反复为了防止循环引用而去这样写:
OC:
宏定义:
#define WEAKSELF(weakSelf) __weak __typeof(&*self)weakSelf = self;
使用时:直接在要在使用地方掉用:WEAKSELF(weakSelf);在Block闭包里直接用weakSelf即是若引用;
那Swift有没有这样的写法呢?笔者暂时还未发现,那Swift怎样子这样写呢?
是在没出都写:weak var weakSelf = self 再掉用weakSelf这个对象使用嘛?经笔者长期使用,觉得还是很麻烦的,那应该怎样呢?
eg:viewController.getModel = { [weak self] model in
在这里直接使用self即可(不会循环引用),不过每次都要写[weak self],但总体来说还是方便不少的!
}