我想知道为什么我无法将我的数据从Core Data添加到我的tableview。它首先被添加并存储但是当重新加载应用程序时数据已经消失所以我需要重新加载它但是我似乎无法将数据添加到我的tableview中?这是代码
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()
}
您可能希望将titleName类型更改为
var titlename: [String] = []
如果tableview使用NSManagedObject
创建单元格,只需将NSManagedObject
数据添加到数组中。
for result in results as! [NSManagedObject] {
titlename.append(result)
}
要么
tableview仅使用来自titlename
数组的字符串来创建单元格,然后将类型NSManagedObject
更改为String
。
var titlename: [String] = []
这会有所帮助。