我正在尝试使用自定义UITableViewCell
。
设置:
Xcode 7.1,Swift,在仿真器中运行
步骤:
1.创建了一个新的“Cocoa Touch Class”(CMD + N),子类为UITableViewCell
2.创建swift文件时也创建XIB文件
3.现在我想将XIB文件加载到TableViewController中
override func viewDidLoad() {
super.viewDidLoad()
let yourNibName = UINib(nibName: "MyTableViewCell", bundle: nil)
tableView.registerNib(yourNibName, forCellReuseIdentifier: "test") // << EXC_BAD_INSTRUCTION
...
我得到:Thread 1: EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP, subcode=0x0)
信息:
1.我可以在调试区域看到:yourNibName有一个内存地址,但所有其他属性都是0x0。因此,不得加载XIB?
2.我可以看到它是检查员的成员:目标会员资格
3.它是在“构建阶段/复制捆绑资源”中
我每次尝试的东西都是干净的产品
但为什么呢?
答案 0 :(得分:1)
试试这个
你的上衣应该是这样的
class myTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
view确实加载了这样的函数:
tableView.registerNib(UINib(nibName: "MyTableViewCell", bundle: nil), forCellReuseIdentifier: "test")
tableView.delegate = self
tableView.dataSource = self
这个功能就像这样:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("test", forIndexPath: indexPath) as! MyTableViewCell
tableView.rowHeight = 470
tableView.allowsSelection = false
return cell
}
如果不起作用,请告诉我..
答案 1 :(得分:0)
人们只希望在Xcode中获得更好的错误消息。那就是说我是从代码创建一个TableViewController,并且错过了视图本身。
self.tableView = UITableView(frame:self.view.frame)
而对于ofcource,您无法对视图为nil做任何事情,包括尝试tableView.registerNib