ios - 如何存储[[string]]并从核心数据中获取它?

标签 ios swift xcode core-data transformable

我有[[string]]的样本数组,像这样[[“A”,“B”,“C”],[“A”],[“B”,“C”],[“C”],[ “B”],[“B”,“C”,“A”]]

我将其存储到这样的核心数据中:

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

哪个角色是API的数组结果(在附加循环之后),带有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]'

我的变形是这样的:
enter image description here

我将核心数据设置为手动,并且已经设置了NSManagedObject子类

如何从核心数据中获取[[string]]?我插入核心数据是否错误?

最佳答案

我认为[[String]]已正确存储在CoreData中。问题是您试图将其直接附加到roless:您可以附加[String]类型的东西,但不能附加[[String]]类型的东西。但是,您可以将它们合并:

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

但是我同意@JoakimDanielson的评论:创建Role实体并为多对多关系建模而不是处理可转换对象可能是明智的。

关于ios - 如何存储[[string]]并从核心数据中获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61283029/

相关文章:

ios - Bundle creator 操作系统类型代码 ???在 Xcode 4 中

ios - 当(之前)应用程序进入后台时 iOS 截取的屏幕截图?

ios - 如何使用自动布局堆叠 3 个 UI 元素

ios - Parse.com PFLoginView UITextfield 显示问题。不能删除边框?

ios - 为 WKWebkitView 运行 localhost

swift - 如何在userdefaults中存储日期?

xcode - 无法将 View Controller 的框架添加到另一个 View Controller 中的 ScrollView

iOS:如何在确认对话框后动画隐藏在表格单元格 "delete"菜单中?

ios 8 Storyboard搜索栏太宽

ios - 如何使用 Swift 3 将触摸应用于图像?