无法加载xib文件

时间:2016-01-20 16:11:53

标签: xcode swift swift2 xcode7

我正在尝试使用自定义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.它是在“构建阶段/复制捆绑资源”中 我每次尝试的东西都是干净的产品 但为什么呢?

2 个答案:

答案 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