[英]UITableView error “Could not load NIB in bundle:” for custom cell
[英]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”的筆尖文件。 因此,請仔細檢查您的班級名稱。 嘗試從項目中刪除它,然后重新添加它,看看會發生什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.