2017-07-02 57 views
2

當我刪除我的視圖控制器的xib文件時,出現此錯誤:「無法加載NIB捆綁...名稱爲'LibraryViewController 「」。我引用了這個question刪除xib文件會導致「NSInternalInconsistencyException,原因:'無法在捆綁中加載NIB:」

事情我已經這樣做:

  • 刪除從模擬器應用
  • 刪除導出數據
  • 清理build文件夾
  • 重新啓動我的電腦
  • 試圖清理的/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 
    } 
} 
+0

你是從一個.xib還是一個故事板手動加載視圖控制器,還是一切都是用IB來完成的?是否有可能你的錯誤是由於你仍然有的代碼試圖加載不再存在的.xib文件?如果是這樣的話,你可以用 創建一個新的.xib,或者在代碼中創建一個視圖控制器,如果你仍然需要這個功能的話。 – Mozahler

+0

當我第一次創建視圖控制器時,我選中了「也創建一個XIB文件」。我沒有把任何東西放在視圖控制器的xib文件上,我沒有在我的代碼中註冊xib文件,所以視圖控制器只能通過代碼加載。然而,編譯器仍然編譯這些視圖控制器XIB文件 – Alex

+0

@Mozahler你知道我的問題是否有解決方案嗎? – Alex

回答

1

更換,您註冊的細胞(你現在想在代碼,而不是的.xib /故事板創建)的代碼,如下所示:

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

的你在上面顯示的那一行註冊了筆尖,所以當它創建一個單元格的時候,你已經告訴它它在一個特定的筆尖文件中。替換行以編程方式創建默認單元格,這意味着您需要使用swift代碼而不是InterfaceBuilder提供的GUI方法對其進行任何修改。這非常簡單。

+0

嗨,我其實想刪除LibraryViewController.xib。我沒有通過故事板或代碼在視圖控制器xib上放置任何東西,所以我不確定爲什麼我不能刪除它。 – Alex

+0

你可以。什麼是確切的錯誤信息?你必須有引用nib的代碼。(類似於單元的寄存器nib)是你的代碼中提到的libraryviewcontroller嗎? – Mozahler

+0

ohh我意識到我在我的'TabBarViewController'中初始化了'var libraryViewController = LibraryViewController(nibName:「LibraryViewController」,bundle:nil)''。修好了,謝謝! – Alex

相關問題