我在Youtube上看了一些Stanford iOS development classes,我发现了一些我不清楚的事情。
在讲座中,教授解释了如何创建自定义视图和自定义数据源类,代码如下:
protocol FaceViewDataSource: class {
// some stuff here
}
class FaceView: UIView {
// some uninteresting properties here
weak var dataSource: FaceViewDataSource?
// other stuff here
}
class HappinessViewController: UIViewController, FaceViewDataSource {
@IBOutlet weak var faceView: FaceView!
// other stuff here
}
必须将dataSource
属性声明为weak
属性的professor said,以避免在视图和视图控制器之间保留周期。
我的问题是:如果我们宣布dataSource
属性为强,我们为什么会有一个保留周期?由于outlet
属性为weak
,是否已避免保留周期?
答案 0 :(得分:3)
不,不是。请参阅下面的说明。