, когда я пытаюсь напечатать значение ключа словаря fromdate
, оно показывает ошибку, даже если оно содержит значение с этим конкретным ключом.
Тема 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения
Это код для сохранения значения в словаре.
func saveRecentSearch() {
var dictSearch = [String:Any]()
if let onJourney = Global.onWordJ {
dictSearch["From"] = onJourney.source?.CM_CityName
dictSearch["Fromid"] = onJourney.source?.CM_CityID
dictSearch["To"] = onJourney.destination?.CM_CityName
dictSearch["Toid"] = onJourney.destination?.CM_CityID
let date = onJourney.journeyDate
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
let myString = formatter.string(from: date!)
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "dd-MMM-yyyy"
let updatedString = formatter.string(from: yourDate!)
print(updatedString)
dictSearch["fromdate"] = updatedString
}
Ключ fromdate
уже сохранит эту дату.Проверьте изображение
Но когда я пытаюсь получить эти данные, они обнаруживают ноль в ключе "fromdate".Вот код.
var arrSearch = [[String:Any]]()
override func viewDidLoad() {
super.viewDidLoad()
if let arr = UserDefault["Search"] {
arrSearch.append(contentsOf: (arr as! [[String:Any]]))
}
self.tblSearch.reloadData()
}
Метод tableView
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
cell.selectionStyle = .none
let dict = arrSearch[indexPath.row]
cell.lblFrom.text = (dict["From"] as! String)
cell.lblTo.text = (dict["To"] as! String)
let strDate = (dict["fromdate"])
cell.lblDate.text = (strDate as! String) //This line showing Error
return cell
}
Что не так с кодом?Я получил все значение, кроме значения ключа fromdate
.