从闭包调用的方法中的self的上下文

时间:2016-09-13 09:07:51

标签: swift reference closures weak

方法sampleMethod()是从具有弱引用self(self?.sampleMethod())的闭包中调用的,在同一个类中。现在sampleMethod()中使用的自我背景是什么? 它会是一个弱者还是一个强者?

1 个答案:

答案 0 :(得分:1)

由于方法sampleMethod()成功调用,默认情况下它会在其内部使用强大的self引用。

您可以考虑这一行

self?.sampleMethod()
像这样

if let s = self {
    s.dynamicType.sampleMethod(s)()
}

您只需将对实例的强引用传递给相关的类方法