给定方法
-(void) doSomeWork
{
self.abc = ...
self.doreme=...
}
在 block 内使用 doSomeWork
是否安全?作为
[weakSelf doSomeWork];//this is inside a block
当然,我担心的是 doSomeWork
本身对 self 有一些引用。
是的,在带有 weakSelf
的 block 内使用 doSomeWork
是完全安全的。
Of course my concern is the fact that
doSomeWork
itself has some reference toself
.
更好的表达方式是“doSomeWork
本身使用self
”,以便从句子中删除“reference”一词。 doSomeWork
内部没有对 self
的“引用”:该方法“免费”引用 self
,因为它是类。实际的引用由调用者传递给方法;方法执行时调用 self
,但没有创建新对象。换句话说,当您调用 [weakSelf doSomeWork]
时,您的 weakSelf
在 doSomeWork
内变为 self
持续时间为方法调用。
关于ios - 使用在 block 中访问 self 的方法是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542720/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |