Должны ли мы создавать классы моделей, когда мы используем базовые данные?
Я работаю над приложением для iPad, которое требует от меня сохранения данных локально, если у пользователя нет доступа к Интернету, а затем выполняется синхронизация с внутренней базой данных.
Для локального хранения я планирую использовать Core Data с SQLite.
Я впервые использую Core Data и, похоже, он извлекает сущность и сохраняет сущность в виде словаря.
Так должен ли я вообще создавать классы моделей?
Какой дизайн хорош для такого применения.
У меня есть класс DataEngine, в обязанности которого входит хранение сущности на сервере или в локальной БД на основе подключения.
Теперь я немного запутался, если мне нужно создать класс Model и попросить отдельные классы модели сохранить себя, используя NSMangaedObjectContext со словарным представлением. Или просто сохранить данные напрямую, вместо того, чтобы создать объект модели и попросить его это сделать?
Должен ли я использовать класс Moel для каждой сущности, и это будет служить сервером в качестве интерфейса между представлением JSON, которое отправляется / отправляется с сервера на сервер.
и представление, которое я получаю от managedObjectContext.
Или я должен полностью полагаться на сущности и отношения, которые создает Базовые данные?
1 ответ
Я сделаю это задом наперед: сначала несколько вещей для проверки, а затем несколько идей.
Проверьте мой собственный вопрос.
Я бы сказал, что в ваших пользовательских категориях вы можете создать интерфейс между представлением JSON и вашими классами.
Вы также должны проверить RestKit, который может сделать уже многое из того, что вам нужно.
Насколько я понимаю, вы говорите о двух отдельных проблемах:
- Синхронизация локальных данных с сервером на основе подключения;
- Использование модельных классов.
Проблема 1
Я думаю, что у вас должен быть класс с общим кодом, и каждый из ваших классов модели должен иметь свое собственное отображение (для отображения между моделью и JSON) и методы сохранения.
Другой класс, который может быть вашим классом DataEngine, заботится о сохранении нужных объектов в нужное время. Взгляните на RestKit, так как он помогает с отображением и сохранением. Я не уверен насчет синхронизации, хотя.
Проблема 2
Я думаю, у вас должны быть модельные классы. Это очень помогает в работе с объектами, и у вас есть место для сохранения методов поиска различных типов данных.
Для этого мой вопрос может быть полезен для вас, потому что вы можете создать модель CoreData с сгенерированными файлами классов и обновлять ее в любое время, сохраняя свой собственный код.