Вопрос
Еще один вопрос Newbie: какой лучший способ хранить данные в приложении Cocoa, написанные в OBJ-C? Например, если я хочу создать своего рода «квестера», который тестирует пользователь с предварительно написанными (и пользовательскими) вопросами? Как я буду хранить эти вопросы и ответы? Основные данные?
Спасибо!
Решение
Конечно, это Основные данные!
Это будет справиться со всем .. посмотрите здесь: http://developer.apple.com/macosx/cordata.html.
Это полный API, который может обрабатывать:
- ORM между базами данных и объектами выполнения
- упорство
- Автоматические строительные инструменты (как ER-редактор)
- Он готов из коробки, вам не нужно будет реализовать практически все .. У вас уже у вас будет доступ к вашим данным, просто запрашивая его контроллерам объекта
Вероятно, это решение перевернута для вашей проблемы, но вы узнаете, как использовать его простым случаем, и я приму дружу в будущем ..
Другие советы
Основные данные, безусловно, является отличным вариантом, поскольку @jack показал. Есть несколько других вариантов.
NSCoding
- Вы можете заставить свои модели объекты соответствовать протоколу Nscoding (аналогичноjava.io.Serializable
), что означает, что вы сможете напрямую написать их в файлы. Я обнаружил, что это отличный вариант, когда у меня нет огромных объемов данных для сохранения данных, и данные, которые я устанавливаю, имеет относительно простую структуру.SQLite - если ваши данные очень реляционные, вы можете рассмотреть возможность использования базы данных (возможно Sqlite). Основные данные - это магазин объектов, и пока он обрабатывает такие вещи, как отношения между объектами, это не позволяет вам делать действительно полезные вещи, такие как
INNER/LEFT/OUTER/CROSS/NATURAL JOIN
или другие многостальные операторы.NSUserDefaults
- Если ваши данные очень маленькие, и просто по существу пары ключевых значений, то вы, вероятно, можете бросить все это вNSUserDefaults
Объект, который будет сохраняться для вас в файле предпочтения. Однако, даже если ваши данные просты,NSUserDefaults
не может быть лучшим вариантом, если у вас есть много всего.