YouTube でスタンフォード iOS 開発クラスをいくつか見たところ、よくわからないことがわかりました。講義では、教授はカスタム ビューとカスタム データ ソース クラスを作成する方法を説明します。コードは次のとおりです。
FaceView.swift
protocol FaceViewDataSource: class {
// some stuff here
}
class FaceView: UIView {
// some uninteresting properties here
weak var dataSource: FaceViewDataSource?
// other stuff here
}
HappinessViewController.swift
class HappinessViewController: UIViewController, FaceViewDataSource {
@IBOutlet weak var faceView: FaceView!
// other stuff here
}
教授は、ビューとビューコントローラー間の保持サイクルを回避するためにdataSource
、プロパティをプロパティとして宣言する必要があると述べまし
た。weak
dataSource
私の質問は、プロパティを強いと宣言した場合、なぜ保持サイクルがあるのですか? outlet
プロパティがであるためweak
、リテインサイクルはすでに回避されていませんか?