Миграционные отношения «один-ко-многим» приводят к пустому NSSet - PullRequest
2 голосов
/ 30 апреля 2019

При переносе моделей возникает проблема.

Во-первых, у меня был пользователь со статьей. Я сделал такие модели:

Model v1

Теперь я сделал вторую версию для таких моделей:

Model v2

А в моем AppDelegate я звоню MagicalRecord.setupAutoMigratingCoreDataStack().

Миграция работает, но список статей на user пуст.

Кто-нибудь знает, как автоматически настроить список с предыдущей статьей user?

1 Ответ

0 голосов
/ 22 июля 2019

Вы должны установить тип отношения на user - «Для многих», а тип отношения на article - «К одному».

Это обеспечит вам отношение один-много в базе данных, что означает, что у одного пользователя может быть много статей.

Для доступа к массиву статей у первого пользователя используйте:

let user = User.mr_findFirst()!
let articleList = user.article?.allObjects as! [Article]
for anArticle in articleList {
     // Do something here
}

Или для всех пользователей:

let userList = User.mr_findAll() as! [User]
for user in userList {
     let articleList = user.article?.allObjects as! [Article]
     for anArticle in articleList {
          // Do something here
     }
}
...