删除xib文件会导致“NSInternalInconsistencyException,原因:'无法在bundle中加载NIB:”

时间:2017-07-02 01:52:01

标签: xcode caching xcode8 xib

当我为视图控制器删除xib文件时,我收到此错误:“无法在包中加载NIB ...名称为'LibraryViewController'”。我引用了这个question

我已经完成的事情:

  • 从模拟器中删除了应用
  • 已删除的衍生数据
  • 清理构建文件夹
  • 重新启动了我的电脑
  • 尝试清除/var/folders的内容。但是,我无法删除/var/folders中的文件夹8k,gf和zz,因为它们是Mac OS所必需的。

有没有什么办法可以删除我未使用的xib文件而不会崩溃我的应用程序?

更新

 override func viewDidLoad() {
      libraryTable.register(UINib(nibName: "categoriesTableViewCell", bundle: nil), forCellReuseIdentifier: "categoriesTableViewCell")
 }

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.section == 0  {
        let cell = tableView.dequeueReusableCell(withIdentifier: "categoriesTableViewCell", for: indexPath) as! categoriesTableViewCell
        return cell
    } else {
        let cell = songTableViewCell()
        return cell
    }
}

1 个答案:

答案 0 :(得分:1)

替换注册单元格的代码(现在需要在代码而不是.xib / storyboard中创建),如下所示:

libraryTable.register(UITableViewCell.self, forCellReuseIdentifier: "categoriesTableViewCell")

您在上面显示的行会注册nib,因此在创建单元格时,您已将其告知它在某个nib文件中。替换行以编程方式创建默认单元格,这意味着您需要使用swift代码而不是InterfaceBuilder提供的GUI方法对其进行任何修改。这非常简单。