当我尝试读取字符串并写入单元格时,从核心数据我得到以下错误:
"致命错误:在打开Optional时意外发现nil 值"
保存
func getContext() -> NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as? AppDelegate
return (appDelegate?.persistentContainer.viewContext)!
}
func save(value:String, forKey:String) {
let context = getContext()
let entity = NSEntityDescription.entity(forEntityName: "Ostatnie", in: context)
let adj = NSManagedObject(entity: entity!, insertInto: context)
add.setValue(value, forKey: forKey)
do {
try context.save()
print("save - \(value)")
} catch {
print("err zapisu \(error)")
}
}
保存
save(value: annotation.title!, forKey: "nazwa")
获取值(具有全局var nameTab:[String] = [])
func get(value:String ) -> String {
var value2 = value
let request: NSFetchRequest<Ostatnie> = Ostatnie.fetchRequest()
do {
let result = try getContext().fetch(request)
for liczby in result {
print(liczby.value(forKey: "nazwa") ?? String.self)
value2 = liczby.value(forKey: "nazwa") as! String
nazwaTab.append(wartosc2)
print(nameTab)
print(nameTab)
}
} catch {
print(error)
}
return value2
}
和tableView
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return nazwaTab.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! cellTableViewCell
cell.nazwaLabel.text = nameTab[indexPath.row]
return cell
}
答案 0 :(得分:0)
使用以下代码。你的代码崩溃是因为它从liczby [&#34; nazwa&#34;]获得nil值或者是其他类型的值而不是String。
if let str = liczby["nazwa"] as? String {
value2 = str
}