SQLite.swift:应用程序崩溃是因为强制解包nil值而在活动搜索中点击UITableViewCell

时间:2018-05-11 22:31:54

标签: ios swift sqlite.swift

我已经在我的 select { case sig := <-sigchan: fmt.Printf("Caught signal %v: terminating\n", sig) run = false default: ev := c.Poll(100) if ev == nil { continue } switch e := ev.(type) { case *kafka.Message: //fmt.Printf("%% Message on %s:\n%s\n", // e.TopicPartition, string(e.Value)) if e.Headers != nil { fmt.Printf("%% Headers: %v\n", e.Headers) } str := e.Value res := MessageFormat{} json.Unmarshal([]byte(str), &res) //fmt.Println("size", binary.Size([]byte(str))) host:= regexp.MustCompile(`^([^.]+)`).FindString(res.MetricPath) redisMap[host] = string(str) go func() { redisChnl <- e.Value }() case kafka.PartitionEOF: fmt.Printf("%% Reached %v\n", e) case kafka.Error: fmt.Fprintf(os.Stderr, "%% Error: %v\n", e) run = false default: fmt.Println("count before read: ", len(redisChnl)) fmt.Printf("Ignored %v\n", e) <-redisChnl fmt.Println("count after read: ", len(redisChnl)) //would've expected this to be 0 } } 添加了UISearchBar,其中也有一个ViewController,这是来自SQLite的数据“ fed”数据库使用SQLite.Swift

搜索有效,搜索时所有结果都会正确显示。通过单击UITableView调用DetailView也可以正常工作,但是当我在>活动搜索期间单击单元格时,应用程序崩溃。

奇怪的是:它在模拟器中运行良好而不会崩溃,但不会在我的物理设备上运行。我正在使用最新的XCode 9和XCode 9 beta版本,我正在iOS 11.3或11.4中推出该应用程序。

我尝试了几件事,但我无法弄清楚是什么导致了崩溃。我正在粘贴整个TableViewCell。我已经标记了使用代码的部分,这部分取自添加的框架/扩展。

错误说明:

  

“主题1:致命错误:在展开可选值时意外发现nil。”

这是ViewController中错误引用的部分:

SQLite.swift

我想知道func value<A: Value>(_ v: Binding?) -> A { return value(v!) } 值在哪里。

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

编辑:我编辑了代码,因为错误没有发生在活动窗口的nil中,而是出现在ViewController中,点击后应显示DetailViewController。这是发生错误的行:

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

TableViewCell

1 个答案:

答案 0 :(得分:0)

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

我的问题中ViewController内未发生错误。它发生在viewDidLoad()的{​​{1}}中,我从DetailViewController数据库中获取了要显示在详细信息中的缺失数据。

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

要获取已知其他两个值的行的列值,您需要SQLite.swift来自双select的{​​{1}}。就是这样:

binding

没有错误,也没有崩溃。