gpt4 book ai didi

ios - 线程 1 : signal SIGABRT when getting Reusable cell for TableView

转载 作者:行者123 更新时间:2023-11-28 07:19:34 30 4
gpt4 key购买 nike

背景

我正在尝试重用一个名为“PhotoCell”的单元格,该单元格用于此提要中的不同提要。放置一些断点后,我的代码到达了从 PhotoCell 中获取 ReusableCell 的这一点,并出现如下错误:

2019-10-24 10:17:45.962720-0700 Gallery[15203:376468] 
*** Assertion failure in -[UITableView _dequeueReusableCellWithIdentifier:forIndexPath:usingPresentationValues:],
/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore_Sim/UIKit-3899.13.13/UITableView.m:8589
2019-10-24 10:17:45.978775-0700 Gallery[15203:376468] ***

Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'unable to dequeue a cell with identifier EventFeedPhotoCell -
must register a nib or a class for the identifier
or connect a prototype cell in a storyboard'

所以我知道错误发生在哪里,但我不清楚如何通过打印语句或类似的方式调试它。我该如何解决这个问题?

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

//Get a event feed photo cell
let cell = tableView.dequeueReusableCell(withIdentifier: Constants.Storyboard.eventFeedPhotoTableCell, for: indexPath) as! PhotoCell

//Get the photo for this row
let photo = photos[indexPath.row]

//Set the details for the cell
cell.setPhoto(photo)

return cell

}

最佳答案

同意小区标识符似乎是问题所在。我最近采用的一种模式(替换枚举和常量)是在自定义单元格上为 ID 使用静态属性,因为它很可靠,并且非常明显地表明正在发生的事情以及在何处使用了哪个单元格:

class MyCustomCell: UITableViewCell {
static let cellID = "WhateverStringYouLike" //as it'll never be visible

//all the usual stuff
}

然后像这样使用它:

//in viewDidLoad()
tableView.register(MyCustomCell.self, for: MyCustomCell.cellID)


//in cellForRowAt
let cell = tableView.dequeueReusableCell(withIdentifier: MyCustomCell.cellID, for: indexPath)

关于ios - 线程 1 : signal SIGABRT when getting Reusable cell for TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58546353/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com