0
我有以下init
方法在我的視圖控制器:在super.init呼叫物業未初始化
init(mainViewController: UIViewController, settingsViewController: UIViewController, gap: Int) {
self.mainViewController = mainViewController
self.settingsViewController = settingsViewController
self.gap = gap
self.setupScrollView() // I get error here
super.init(nibName: nil, bundle: nil) //and here.
}
爲self.setupScrollView
方法現在看起來就像這樣:
func setupScrollView() {
self.scrollView = UIScrollView(frame: CGRectZero)
self.scrollView.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addSubview(self.scrollView)
}
我得到的錯誤是:
self used before super.init call
和Property 'self.scrollView' not initialized at super.init call
我看過類似的帖子,沒有任何運氣。任何幫助,將不勝感激!
這奏效了,謝謝!但爲什麼這是必要的?另外我雖然當一個參數是可選的,你應該這樣調用它:'scrollView!.setTranslatesAutoresizingMaskIntoConstraints(false)'並且不強制解包它? –
我的意思是調用它像這樣,而不是:'滾動視圖.setTranslatesAutoresizingMaskIntoConstraints(假)' –
這是行不通的,因爲編譯器是不知道,如果該值不爲零?通過使用'!'你認爲它不是零。如果您無法確定,請在展開前進行額外的檢查。 – Adam