gpt4 book ai didi

swift - 删除单元格时的字典值 - 在展开可选值时意外发现 nil

转载 作者:行者123 更新时间:2023-11-28 06:25:18 24 4
gpt4 key购买 nike

我在 Swift/Xcode 工作,我是应用程序开发的新手,我有一个带有 2 个标签的 tableView。问题是删除我的 tableView 的单元格时。我需要获取其中一个单元格标签的数据,但应用程序因 fatal error 而崩溃 - “在展开可选值时意外发现 nil”

我已经设置了断点,以便我可以检查字典中是否存储了任何内容,确实如此,其中存储了一个元素。

感谢任何帮助

 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
let cell = tableView.cellForRowAtIndexPath(indexPath) as! myCustomCell

self.cost = self.total
// This line gives me the error** self.total = self.cost - self.dict[cell.cellPrice.text!]!
self.totalLabel.text = "Total: \(self.total)"

self.dict.removeValueForKey(cell.cellTitle!.text!)
tableView.reloadData()
saveState()



}

这是我设置单元格的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
let cell: myCustomCell = tableView.dequeueReusableCellWithIdentifier("customCell", forIndexPath: indexPath) as! myCustomCell
var myDataSource : [String] = Array(self.dict.keys)
let key = myDataSource[indexPath.row] as String
cell.cellTitle?.text = myDataSource[indexPath.row]
cell.cellPrice?.text = "£(self.dict[key]!)"
self.saveState()
return cell
}

最佳答案

我必须查看更多您的代码才能了解您如何设置 myCustomCell 的属性,但看起来 cellPrice.text 为 nil 或 self.dict[cell.cellPrice.text] 为零。您应该安全地解开这些 optional ,而不是试图强制它们。看起来像这样:

if let price = cell.cellPrice.text, let priceValue = self.dict[price] {
self.totalLabel.text = "Total: \(priceValue)"
...
}

一般来说,您应该远离强制展开(使用!),除非您只是为了测试或其他目的而非常快速地编写代码。它使调试变得更加困难。

关于swift - 删除单元格时的字典值 - 在展开可选值时意外发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096437/

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