2017-12-18 210 views
0

我想知道爲什麼我無法將我的數據從核心數據添加到我的tableview。它是第一次添加和存儲,但當應用程序重新加載數據已經消失,所以我需要重新加載它,但我似乎無法將數據添加到我的tableview? 下面是代碼無法將類型'String'的值轉換爲期望的參數類型'NSManagedObject'Swift

var titlename: [NSManagedObject] = [] 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(true) 

    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    let manageContext = appDelegate.persistentContainer.viewContext 
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Items") 

    fetchRequest.returnsObjectsAsFaults = false 

    do { 
     let results = try manageContext.fetch(fetchRequest) 

     for result in results as! [NSManagedObject] { 
      if let theName = result.value(forKey: "name") as? String { 
       titlename.append(theName) 
      } 
     } 
    } catch let error as NSError { 
     print("Could not fetch. \(error), \(error.userInfo)") 
    } 

    tableView.reloadData() 
} 

回答

1

您可能希望TITLENAME類型更改爲

var titlename: [String] = [] 
1

如果創建細胞的tableview使用NSManagedObjectNSManagedObject數據添加到陣列中。

for result in results as! [NSManagedObject] { 
     titlename.append(result) 
    } 

OR

的的tableview僅使用字符串從titlename陣列用於產生細胞,然後只NSManagedObject類型更改爲String

var titlename: [String] = [] 

這將有所幫助。

相關問題