Сохранение данных навсегда в iPhone обычно выполняется с использованием Core Data или sqlite3. Большинство пользователей предпочитают использовать NSUserDefaults как хранилище для предпочтений приложения, а не использовать его как обычную базу данных (например, sqlite).
Я обнаружил, что большой объем данных можно хранить в NSUserDefaults, он очень прост в использовании и быстро. Так почему бы не использовать это как постоянное хранилище? Каковы ограничения NSUserDefaults как базы данных?
Update:
Я часто использую три разных способа сохранения моих данных на диск.
- Основные данные
- Сериализация объектов для plists
- NSUserDefaults
Я больше не использую FMDB (или sqlite напрямую). Каковы основные преимущества и недостатки каждого подхода?
Некоторые преимущества NSUserDefaults, с которыми я столкнулся:
- Сортировка, группировка и т.д. легко может быть выполнена с использованием NSPredicate.
- NSUserDefaults является потокобезопасным.
- Требуется одна строка для извлечения и сохранения данных в NSUserDefaults.