gpt4 book ai didi

ios - SQLite.swift:在事件搜索中点击 UITableViewCell 时,由于强制展开 nil 值,应用程序崩溃

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

我已经在我的 ViewController 中添加了一个 UISearchBar,其中也有一个 UITableView,它是“fed”的 使用 SQLite.Swift 来自 SQLite 数据库的数据.

搜索正常,搜索时所有结果均正确显示。通过单击 TableViewCell 调用 DetailView 也可以正常工作,但是当我事件搜索期间单击单元格时,应用程序崩溃。

奇怪的是:它在模拟器中运行得很好,没有崩溃,但在我的物理设备上却不行。我正在使用最新的 XCode 9 和 XCode 9 beta 版本,并在 iOS 11.3 或 11.4 中启动该应用程序。

我已经尝试了几种方法,但我就是无法弄清楚导致崩溃的原因。我正在粘贴整个 ViewController。我已经标记了使用代码的部分,这些代码取自添加的框架/扩展。

错误提示:

"Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value."

这是 SQLite.swift 中错误引用的部分:

func value<A: Value>(_ v: Binding?) -> A {
return value(v!)
}

我想知道 nil 值在哪里。

这是我的代码:感谢您的提示和帮助

编辑:我编辑了代码,因为错误不是发生在事件窗口的 ViewController 中,而是发生在 DetailViewController 中单击 TableViewCell 后应显示该内容。这是发生错误的行:

此代码应在数据库中找到名称和日期与给定变量匹配的行,以选择该行中的名称:

let nameOfBank = try! database.scalar(table.filter(tableColumnName == cell?.textLabel?.text && tableColumnDate == cell?.detailTextLabel?.text).select(bankName))

最佳答案

找到错误根源后,我正在回答自己的问题。

错误没有发生在 ViewController 中在我的问题里面。它发生在viewDidLoad()DetailViewController我在其中获取了要在 SQLite 的详细信息中显示的丢失数据。数据库。

这是经过研究和检查后的解决方案SQLite.swift的 GitHub:

要获取您已经知道另外两个值的行的列值,您需要 select一个binding来自双filter 。事情是这样的:

let wantedValue = try! database.scalar(history.select(valueLookingFor).filter(knownValue1 == firstKnownValue && knownValue2 == secondKnownValue))

没有错误,不再崩溃。

关于ios - SQLite.swift:在事件搜索中点击 UITableViewCell 时,由于强制展开 nil 值,应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301068/

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