Должны ли мы создавать классы моделей, когда мы используем базовые данные?

Я работаю над приложением для iPad, которое требует от меня сохранения данных локально, если у пользователя нет доступа к Интернету, а затем выполняется синхронизация с внутренней базой данных.

Для локального хранения я планирую использовать Core Data с SQLite.

Я впервые использую Core Data и, похоже, он извлекает сущность и сохраняет сущность в виде словаря.

Так должен ли я вообще создавать классы моделей?

Какой дизайн хорош для такого применения.

У меня есть класс DataEngine, в обязанности которого входит хранение сущности на сервере или в локальной БД на основе подключения.

Теперь я немного запутался, если мне нужно создать класс Model и попросить отдельные классы модели сохранить себя, используя NSMangaedObjectContext со словарным представлением. Или просто сохранить данные напрямую, вместо того, чтобы создать объект модели и попросить его это сделать?

Должен ли я использовать класс Moel для каждой сущности, и это будет служить сервером в качестве интерфейса между представлением JSON, которое отправляется / отправляется с сервера на сервер.

и представление, которое я получаю от managedObjectContext.

Или я должен полностью полагаться на сущности и отношения, которые создает Базовые данные?

1 ответ

Решение

Я сделаю это задом наперед: сначала несколько вещей для проверки, а затем несколько идей.

Проверьте мой собственный вопрос.

Я бы сказал, что в ваших пользовательских категориях вы можете создать интерфейс между представлением JSON и вашими классами.

Вы также должны проверить RestKit, который может сделать уже многое из того, что вам нужно.


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

  1. Синхронизация локальных данных с сервером на основе подключения;
  2. Использование модельных классов.

Проблема 1

Я думаю, что у вас должен быть класс с общим кодом, и каждый из ваших классов модели должен иметь свое собственное отображение (для отображения между моделью и JSON) и методы сохранения.

Другой класс, который может быть вашим классом DataEngine, заботится о сохранении нужных объектов в нужное время. Взгляните на RestKit, так как он помогает с отображением и сохранением. Я не уверен насчет синхронизации, хотя.

Проблема 2

Я думаю, у вас должны быть модельные классы. Это очень помогает в работе с объектами, и у вас есть место для сохранения методов поиска различных типов данных.

Для этого мой вопрос может быть полезен для вас, потому что вы можете создать модель CoreData с сгенерированными файлами классов и обновлять ее в любое время, сохраняя свой собственный код.

Другие вопросы по тегам