我已经在我的 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
答案 0 :(得分:0)
在找到错误来源后,我正在回答我自己的问题。
我的问题中ViewController
内未发生错误。它发生在viewDidLoad()
的{{1}}中,我从DetailViewController
数据库中获取了要显示在详细信息中的缺失数据。
这是研究和检查SQLite
的GitHub后的解决方案:
要获取已知其他两个值的行的列值,您需要SQLite.swift
来自双select
的{{1}}。就是这样:
binding
没有错误,也没有崩溃。