簡體   English   中英

如何存儲 [[string]] 並從核心數據中獲取它?

[英]how to store [[string]] and get it from core data?

我有這樣的 [[string]] 示例數組 [["A", "B", "C"], ["A"], ["B", "C"], ["C"], [ "B"], ["B", "C", "A"]]

我將它存儲到這樣的核心數據中:

insertHeroes.setValue(roless, forKey: "roles")

其中角色是來自 API(在 append 循環之后)的數組結果,其中var roless = [[String]]()

核心數據存儲在列表中var coreHeroList: [NSManagedObject] = []

但是當我嘗試從核心數據中獲取並存儲它(在removeall之后)時:

if (coreHeroList.count > 0) {
            for hero in coreHeroList {
                roless.append(hero.value(forKey: "roles") as? [[String]] ?? [[""]])
            }
        }

它給出紅色錯誤:無法將類型“[[String]]”的值轉換為預期的參數類型“[String]”

我的變形金剛是這樣的: 在此處輸入圖像描述

我將核心數據設置為手動並已設置 NSManagedObject SubClass

如何從核心數據中獲取 [[string]]? 我對核心數據的插入是否錯誤?

我認為[[String]]正確地存儲在 CoreData 中。 問題是您正在嘗試將roless直接轉換為角色:您可以使用[String]類型的 append 事物,但不能[[String]]類型的append事物。 但是,您可以合並它們:

roless += hero.value(forKey: "roles") as? [[String]] ?? [[""]]

但我同意@JoakimDanielson 的評論:創建Role實體和 model 可能是明智的,而不是處理可轉換的關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM