2017-02-16 78 views
0

时,我尽量读字符串并写入单元格,从核心数据,我得到以下错误致命错误意想不到的无核心数据

"fatal error: unexpectedly found nil while unwrapping an Optional value"

保存

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") 

获取值(具有全局变量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

cell.nazwaLabel.text = nameTab [indexPath.row] as!字符串 –

+0

你能解释一下吗?在你的代码崩溃 –

+0

@Lalit Kuma值2 = liczby.value(forKey:“nazwa”)!字符串在这我得到“exc_bad_instruction” – k0le

回答

0

使用下面的代码。你的代码崩溃是因为它从liczby [“nazwa”]获取nil值或者是String以外的其他类型的值。

if let str = liczby["nazwa"] as? String { 
    value2 = str 
} 
+0

谢谢,工作! :) – k0le

+0

Em,我有另一个问题,我怎么现在可以在tableView上显示它?代码就像主题 – k0le

+0

显示一些“默认值”或不追加'nazwaTab'。所以,你将只包含单元格的值可用 –