Отображение встроенных объектов в iOS Core Data
Предположим, что есть веб-сервис, возвращающий JSON-ответ, подобный следующему:
{
"id": "123",
"name": "John Doe",
"phone": {
"country_code": "1",
"area_code": "11",
"number": "55544433"
}
}
Это описание сущности Person, но внутри этой сущности есть свойство phone, содержащее внедренный объект.
Телефон не является сущностью, и на него не ссылается идентификатор, он полностью содержится внутри области действия этой сущности. Однако было бы желательно отобразить его на Phone @interface в моем коде (например, он мог бы иметь метод "formatAsString", который возвращает форматированную строку, например: "+1 (11) 55544433")
Как мне справиться с этим случаем при сопоставлении модели с iOS Core Data?
1 ответ
Создать Person
сущность с to-many
(или к одному, если есть только один номер телефона) Phone
юридическое лицо.Phone
субъект будет иметь отношение один к одному Person
юридическое лицо.
Кроме того, он будет иметь внутреннюю структуру, которую вы описали (код страны, код области, номер).
Вам не нужно id
свойство для создания сущности CoreData.
Вы можете установить отношение "каскад", чтобы при удалении человека удалялись все связанные телефонные номера.
Когда вы пересекаете свой ответ JSON, прочитайте клавишу "телефон" в Phone
сущность и его person
собственность на человека, которого вы в настоящее время пересекаете.