2014-07-21 21 views
4

我的代碼在升級到beta 4之前編譯正常,但是我認爲他們用IBOutlets改變了一些東西。在Swift中創建IBOutlet的結果'class is not constructible with()'

舊的語法是:

@IBOutlet var tableView: UITableView 

新的語法是:

@IBOutlet weak var tableView: UITableView! 

這是Xcode中產生的,當我從我的XIB文件的類文件Ctrl拖動默認代碼。

但是,使用這種新的語法,我無法構建我的類的實例。看看下面的例子:

class TestViewController: UIViewController { 
    @IBOutlet weak var tableView: UITableView! 
} 

然後,如果我嘗試做任何

var controller = TestViewController(nibName: nil, bundle: nil) 

var controller = TestViewController() 

我得到一個錯誤:

TestViewController is not constructible with()

什麼是正確的方式然後創建我的控制器的實例?目前唯一的辦法是讓網點可選,但我寧願不這樣做。

回答

0

的解決方案似乎是實現init方法在視圖控制器:

init() 
{ 
    super.init(nibName: nil, bundle: nil) 
} 

我不知道這是爲什麼。

+0

當我這樣做時,我得到一個運行時錯誤:「致命錯誤:使用未實現的初始化'初始化(編碼器:)爲類」 – danielbh

1

你可以試試這個。

@IBOutlet var tableView: UITableView? 

我知道這不是答案,但錯誤消失之後。

相關問題