2015-12-01 63 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