给出方法
-(void) doSomeWork
{
self.abc = ...
self.doreme=...
}
在块内使用doSomeWork
是否安全?如
[weakSelf doSomeWork];//this is inside a block
当然,我关注的是doSomeWork
本身对自我有一些参考。
答案 0 :(得分:2)
是的,在doSomeWork
的块中使用weakSelf
是完全安全的。
当然,我关注的是
doSomeWork
本身对self
有一些参考。
更好的方法是“doSomeWork
本身使用self
”,以便从句子中删除“引用”一词。在self
内创建doSomeWork
没有“引用”:该方法因为是类的实例方法而免费引用self
。调用者将实际引用传递给方法;当方法执行时,它被称为self
,但是没有创建新对象。换句话说,当您拨打[weakSelf doSomeWork]
时,weakSelf
会在self
内变为doSomeWork
,持续时间为方法调用。