我已经阅读了关于强/弱的帖子self来打破保留周期,但我仍然对它们是如何工作感到困惑.我理解使用__weak typeof(self) weakSelf = self创建弱自我的参考,但我对强引用感到困惑.据我了解,强引用是有一个强引用,self以便它不会在块结束之前解除分配吗?那么为什么有必要__strong typeof(self) strongSelf = weakSelf呢?这最终是否指向自我对象?那么为什么不strongSelf = self呢?
我有以下代码:
class Parent {
var foo: Int
init(someNum: Int) {
self.foo = someNum
}
}
class Child: Parent {
}
var parent = Parent(someNum: 999)
println(parent.foo) // prints "999"
var child = Child(someNum: 3872)
println(child.foo) // prints "3872"
Run Code Online (Sandbox Code Playgroud)
在Apple的2014 WWDC"Intermediate Swift"视频中,他说默认情况下不会继承初始值设定项,除非它的存储属性有默认值.但是foo,子类中没有默认值,Child但它明确地继承了该init(someNum:)方法.我理解错误的解释还是还有其他事情发生?