ERROR: Thread 1: Signal SIGABRT (While append the element in the Array)
ERROR: Thread 1: Signal SIGABRT (While append the element in the Array)
当我尝试将元素追加到数组中时,错误是 shown.Here 是代码。
func saveRecentSearch() {
var dictSearch = [String:Any]()
if let onJourney = Global.onWordJ {
dictSearch["From"] = onJourney.source
dictSearch["Fromid"] = Global.onWordJ?.source?.CM_CityID
dictSearch["To"] = Global.onWordJ?.destination
dictSearch["Toid"] = Global.onWordJ?.destination?.CM_CityID
}
if let onJourney = Global.returnJ {
dictSearch["todate"] = onJourney.journeyDate!
}
var arr = [[String:Any]]()
if let arrSearch = UserDefault["Search"] {
DispatchQueue.main.async {
arr.append(arrSearch as! [String : Any])
arr.append(dictSearch)
}
} else {
arr.append(dictSearch)
}
UserDefault["Search"] = arr
}
我在 cellForRowAt indexPath
tableView
方法中调用了这个函数。
您应该已经在问题中显示了错误消息。错误很明显。
键 Search
的值是一个 数组 因此强制转换 as! [String : Any]
到 字典 失败.
将代码更改为
...
var arr = [[String:Any]]()
if let arrSearch = UserDefault["Search"] as? [[String : Any]] {
arr.append(contentsOf: arrSearch)
}
arr.append(dictSearch)
UserDefault["Search"] = arr
...
分派到主线程,不需要 else
子句。
当我尝试将元素追加到数组中时,错误是 shown.Here 是代码。
func saveRecentSearch() {
var dictSearch = [String:Any]()
if let onJourney = Global.onWordJ {
dictSearch["From"] = onJourney.source
dictSearch["Fromid"] = Global.onWordJ?.source?.CM_CityID
dictSearch["To"] = Global.onWordJ?.destination
dictSearch["Toid"] = Global.onWordJ?.destination?.CM_CityID
}
if let onJourney = Global.returnJ {
dictSearch["todate"] = onJourney.journeyDate!
}
var arr = [[String:Any]]()
if let arrSearch = UserDefault["Search"] {
DispatchQueue.main.async {
arr.append(arrSearch as! [String : Any])
arr.append(dictSearch)
}
} else {
arr.append(dictSearch)
}
UserDefault["Search"] = arr
}
我在 cellForRowAt indexPath
tableView
方法中调用了这个函数。
您应该已经在问题中显示了错误消息。错误很明显。
键 Search
的值是一个 数组 因此强制转换 as! [String : Any]
到 字典 失败.
将代码更改为
...
var arr = [[String:Any]]()
if let arrSearch = UserDefault["Search"] as? [[String : Any]] {
arr.append(contentsOf: arrSearch)
}
arr.append(dictSearch)
UserDefault["Search"] = arr
...
分派到主线程,不需要 else
子句。