簡體   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