无法将类型'String'的值转换为期望的参数类型'NSManagedObject'Swift
我想知道为什么我无法将我的数据从核心数据添加到我的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()
}
回答:
您可能希望TITLENAME类型更改为
var titlename: [String] = []
回答:
如果创建细胞的tableview使用NSManagedObject
简NSManagedObject
数据添加到阵列中。
for result in results as! [NSManagedObject] { titlename.append(result)
}
OR
的的tableview仅使用字符串从titlename
阵列用于产生细胞,然后只NSManagedObject
类型更改为String
。
var titlename: [String] = []
这将有所帮助。
以上是 无法将类型'String'的值转换为期望的参数类型'NSManagedObject'Swift 的全部内容, 来源链接: utcz.com/qa/260596.html