如果我的viewcontroller必須使用委託進行初始化,那麼使用無主的代碼是否存在任何危險?非可選代表的弱vs無主
使用弱似乎引入了函數失敗的概率(見下文),儘管它不會崩潰。
無論如何,在這種情況下使用非持有人會不安全嗎?
class MyViewController: UIViewController
private weak var delegate: MyViewControllerDelegate?
init(delegate: MyViewControllerDelegat) {
self.delegate = delegate
}
func foobar {
delegate??
}
相比
class MyViewController: UIViewController
private unowned var delegate: MyViewControllerDelegate
init(delegate: MyViewControllerDelegate) {
self.delegate = delegate
}
func foobar {
delegate.doAction()
}