繁体   English   中英

无法将“字符串”类型的值转换为预期的参数类型“ NSManagedObject” Swift

[英]Cannot convert value of type 'String' to expected argument type 'NSManagedObject' Swift

我想知道为什么不能将核心数据中的数据添加到表视图中。 它是第一次添加和存储的,但是当重新加载应用程序时,数据已经消失了,所以我需要重新加载它,但是似乎无法将数据添加到我的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] = []

这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM