以编程方式在swift中添加UITableViewCell

以编程方式在swift中添加UITableViewCell,swift,uitableview,Swift,Uitableview,我试图以编程方式在swift中添加UITableViewCells,并收到以下错误消息: 2016-05-10 21:58:41.961 appname[28802:2378292]***由于未捕获的异常“NSInternalInconsistenceException”而终止应用程序,原因:“无法在捆绑包中加载NIB:“NSBundle(loaded)”,名称为“myCell” 我的viewDidLoad中有以下内容: let myNib = UINib(nibName: "myCell",

我试图以编程方式在swift中添加UITableViewCells,并收到以下错误消息:

2016-05-10 21:58:41.961 appname[28802:2378292]***由于未捕获的异常“NSInternalInconsistenceException”而终止应用程序,原因:“无法在捆绑包中加载NIB:“NSBundle(loaded)”,名称为“myCell”

我的
viewDidLoad
中有以下内容:

let myNib = UINib(nibName: "myCell", bundle: nil)
tableView.registerNib(myNib, forCellReuseIdentifier: "UITableViewCell")
在func
表视图中显示以下内容:

 var cell:UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("UITableViewCell", forIndexPath:indexPath)

        print("setup cell")

        if cell == nil{
            print("cell == nib")
            let cellnib = [NSBundle.mainBundle().loadNibNamed("myCell", owner:self, options: nil)]
            cell = cellnib.first! as! UITableViewCell
        }
我建议你读一下这本书。这是一篇很长的文章,用ObjC编写,但很值得

对于您的问题,您不会像那样创建
UITableViewCell
。请尝试以下方法:

var cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath:indexPath)

if cell == nil {
    print("setup cell")
    cell = UITableViewCell(style: .Default, reuseIdentifier: "myCell")
}

实际上,您可以像这样创建表格单元格,但需要将代码放在init中,而不是viewDidLoad中:

   required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        self.registerNib(UINib(nibName: "myCell", bundle: nil), forCellReuseIdentifier: Identifier)
    }
但请确保myCell.xib存在于您的项目中。要创建它,请右键单击左侧的项目目录,然后选择“新建文件”。然后选择iOS->Source->Cocoa Touch类。在类名中使用:myCell和要成为UITableViewCell的子类。选中此复选标记还可以创建XIB文件:


您并没有像这样将单元格“添加”到表视图中。在这里看一看:谢谢,这与我能够使它工作的方法相似。本教程证明非常有用-