iOS/Swift:tableView cellForRowAtIndexPath崩溃

iOS/Swift:tableView cellForRowAtIndexPath崩溃,ios,swift,uitableview,Ios,Swift,Uitableview,我在第389行遇到EXC_断点崩溃 386 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 387 let cell = tableView.dequeueReusableCellWithIdentifier("StationsCell", forIndexPath: indexPath) 388

我在第389行遇到EXC_断点崩溃

386    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
387        let cell = tableView.dequeueReusableCellWithIdentifier("StationsCell", forIndexPath: indexPath)
388        cell.textLabel?.text = self.suggestionStations?[indexPath.row]
389        return cell
390    }
以下是Crashlytics的崩溃报告,有2%的用户发生了崩溃:

线程:崩溃:com.apple.main-Thread
0特伦尼̀t!0x10004a2e4专用MasterViewController.tableView(UITableView,cellForRowAtIndexPath:NSIndexPath)->UITableViewCell(MasterViewController.swift:389)
1特伦尼̀t!0x100046488@objc MasterViewController.tableView(UITableView,cellForRowAtIndexPath:NSIndexPath)->UITableViewCell(MasterViewController.swift)
2 UIKit 0x18c6b239c-[UITableView\u createPreparedCellForGlobalRow:withIndexPath:willDisplay:+544
3 UIKit 0x18c6a6fc4-[UITableView\u updateVisibleCellsNow:isRecursive:+2360
4 UIKit 0x18c49cc60-[UITableView布局子视图]+172
5 UIKit 0x18c3b9874-[UIView(CALayerDelegate)布局层的子层:+572
6夸脱芯0x18bd11d58-[CALayer布局子层]+168
7夸脱核心0x18bd0c944 CA::图层::布局(如果需要)(CA::事务*)+320


知道为什么会发生这种情况吗?

确保在
Main.Storyboard
中已明确将单元格标识符设置为“StationCell”。选择单元格并转到属性检查器


另外,在函数之前添加
override
,因此它应该是
override func

崩溃是由
suggestionStations
数组在索引处没有值引起的

当数组重置为0时,我没有在表上调用
ReloadData()
。因此,当索引中的值不再存在时,表函数仍然在竞争条件下被调用


修复方法是在重置数组后调用ReloadData()。否则可能会检查是否为数组定义了索引,但如果每次都正确调用reloadData,则不需要这样做。

我们也遇到了同样的问题。此版本在iOS 10 beta1上100%可复制

虽然很难相信,但我们通过在故事板上提供一个非常短的单元标识符,成功地解决了这个问题。如“PhoneContactCell”重命名为“PCell”


经过一些调查,我们认为这是一个故事板错误:如果一个单元原型被复制和修改,那么它可能会有这个问题。

单元可能是
nil
。你检查过了吗?崩溃日志中有人可读的错误消息吗?@rmaddy这是我唯一能得到的崩溃日志,它来自Crashlytics@ozgur,是否可能单元格有时为零,有时为非?考虑到返回值
UITableViewCell
不是可选的,如果单元格为零,我该怎么办?是否有可能此代码总是崩溃,但只有2%的用户使用它?比如,如果它提供了一些很少需要的功能?如果不设置它,它将总是崩溃,而不仅仅是2%的用户。这是一个奇怪的问题,我得到了相同的,无法复制,但一些用户在应用程序启动时崩溃,这是一个EXC_断点。我复制了tableview和原型单元格。将重新创建并推送生成。如果这解决了问题,我们将在这里发表评论。我们找到了导致崩溃的原因。我们使用了名为FoundationExtension的第三方库,其中覆盖了NSObject类别中的serval memeory管理调用。我们搬走了图书馆,它成功了。