2015-12-01 62 views
-1

我想用下面給出的代碼註冊一個類,UITableViewCell。我在調用方法viewDidLoad中registerClass:forCellReuseIdentifier:在swift中不工作

tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "SearchResult") 

但是,當我嘗試杜克細胞,我得到無細胞。此代碼正在我的視圖控制器擴展(擴展實現tableview的協議)中調用。

var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("SearchResult") 

錯誤:

fatal error: unexpectedly found nil while unwrapping an Optional value 

任何想法,我做錯了這裏。

謝謝。

+0

你有tableviewcell筆尖(廈門國際銀行)文件? –

+0

你在哪裏調用registerClass? –

+1

'讓電池= tableView.dequeueReusableCellWithIdentifier(「信息搜索結果」,forIndexPath:indexPath)' – Ian

回答

1

這是nil每當表視圖尚未初始化任何細胞的時間。要麼你檢查它是nil

var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("SearchResult") ?? UITableViewCell() 

,但其實這是不完美的(順便說一句,如果你不知道:??是表達式的結果,如果第一部分是nil)。你應該實際使用這肯定會返回一個非空UITableViewCell如下:

var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("SearchResult", forIndexPath: indexPath) 
0
let cell = tableView.dequeueReusableCellWithIdentifier("SearchResult")! as UITableViewCell