как сохранить [[string]] и получить его из основных данных? - PullRequest
2 голосов
/ 18 апреля 2020

У меня есть пример массива [[string]], подобный этому [["A", "B", "C"], ["A"], ["B", "C"], ["C"], ["B"], ["B", "C", "A"]]

Я храню их в основных данных, например:

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

, который roless является результатом массива из API (после добавления l oop) с var roless = [[String]]()

данные ядра сохраняются в списке var coreHeroList: [NSManagedObject] = []

, но когда я пытаюсь получить из базовых данных и сохраните их (после удаления всех) следующим образом:

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

выдается красная ошибка: невозможно преобразовать значение типа '[[String]]' в ожидаемый тип аргумента '[String]'

Мой трансформируемый файл выглядит следующим образом: enter image description here

Я установил базовые данные вручную и уже установил NSManagedObject SubClass

Как получить [[string]] из основных данных? Моя вставка в основные данные неверна?

1 Ответ

0 голосов
/ 18 апреля 2020

Я думаю, что [[String]] правильно хранится в CoreData. Проблема в том, что вы пытаетесь добавить его непосредственно к roless: вы можете добавлять вещи типа [String], но вы не можете добавлять вещи типа [[String]]. Однако вы можете объединить их:

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

Но я согласен с комментарием @ JoakimDanielson: возможно, было бы разумно создать сущность Role и смоделировать отношение ко многим, а не обрабатывать трансформируемые объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...