簡體   English   中英

無法在捆綁中為自定義表視圖單元格類加載NIB

[英]Could not load NIB in Bundle for Custom Table View Cell Class

我已經在這個問題上停留了幾天,這也不是為什么我的表視圖永遠無法正確加載的原因。 起初,我的單元格返回nil,但現在控制台指出:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/JosephHaddad/Library/Developer/CoreSimulator/Devices/2884D7B1-26CD-45F7-A044-9106962AE093/data/Containers/Bundle/Application/005E1198-CFA5-429B-960B-2367296BB6AD/Test.app> (loaded)' with name 'AllBarCell''

這是我的自定義單元格類別:

 import UIKit
 import Foundation

 class AllBarCell: UITableViewCell {

// MARK: Properties


@IBOutlet weak var primaryBarImage: UIImageView?
@IBOutlet weak var barName: UILabel?
@IBOutlet weak var happyHourImage: UIImageView?
@IBOutlet weak var entImage: UIImageView?

struct Static  {
    static var data = CellDataDisplayInformation()
}


// MARK: Methods


override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

override func prepareForReuse() {
    self.barName?.text = nil
    super.prepareForReuse()
 }

}

和我相應的標簽表視圖控制器:

     override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.tableView.registerNib(UINib(nibName: "AllBarCell", bundle: nil), forCellReuseIdentifier: "AllBarCell")
  .....




     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)-> UITableViewCell{

    let cell  = tableView.dequeueReusableCellWithIdentifier("AllBarCell", forIndexPath: indexPath) as! AllBarCell
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0)) {

        dispatch_async(dispatch_get_main_queue()) {


            if let futureCell = tableView.cellForRowAtIndexPath(indexPath) as?  AllBarCell {

                let data = AllBarCell.Static.data


                // Update Happy Hour Image


                let currentHour = GetTime()

                if data.happyStart[indexPath.row] != 999{
                    if currentHour.currentHour >= data.happyStart[indexPath.row] && currentHour.currentHour <=  data.happyEnd[indexPath.row] {
                        var barImage = UIImage(named: "HH")
                        futureCell.happyHourImage?.image = barImage
                    }
                }


                // Update Entertainment Hour Image


                if data.entStart[indexPath.row] != 999 {
                    if currentHour.currentHour >= data.entStart[indexPath.row] && currentHour.currentHour <=  data.entEnd[indexPath.row] {
                        var barImage = UIImage(named: "Ent")
                        futureCell.entImage?.image = barImage
                    }
                }


                // Update Bar Names

                if data.pictureArray[indexPath.row] != nil {
                futureCell.primaryBarImage?.image = data.pictureArray[indexPath.row]
                }

                if data.namesArray[indexPath.row] != nil {
                futureCell.barName?.text = data.namesArray[indexPath.row]
                }



            }
        }
    }

    return cell
}

如果沒有遇到另一個問題,我似乎無法完全解決一個問題。 是的,我的自定義表格視圖單元格已連接到我的自定義單元格類,並且我的視圖控制器也已連接到正確的視圖。

我的兩個問題總結如下:

1)確保我的-cellForRowAtIndexPath不返回零單元格

2)避免出現此錯誤:“無法在捆綁包中加載NIB,名稱為'AllBarsCell'”

您是否在情節提要板上設置了單元重用標識符? 那通常就是讓我絆倒的原因。

您可能在XCode外部重命名了自定義單元類文件。 我認為該錯誤表明它在您的項目中找不到名為“ AllBarCell”的筆尖文件。 因此,請仔細檢查您的班級名稱。 嘗試從項目中刪除它,然后重新添加它,看看會發生什么。

我有一個類似的問題,視圖控制器的語法和自定義單元類都可以,並且在.xib文件中一切都設置正確。

解決方案在情節提要中。 您應該將自己放在customTableViewCell.xib上,按File Inspector圖標,然后在Target Memeberhsip中將項目名稱選項設置為

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM