Подтвердить что ты не робот

Лучший способ сохранить данные на iPhone

Я пишу приложение для iPhone, и мне нужно сохранить состояние моего приложения (5K или около того).

Мое главное беспокойство - это данные, сохраняющиеся при обновлении. Некоторые из приложений, которые я использую, явно ошибались, и я бы предпочел не делать этого!

4b9b3361

Ответ 1

Чтобы сохранить состояние, NSUserDefaults - это путь. Я считаю, что, если не все, экземпляры данных приложения удаляются после обновления из-за проблем в AppStore. Они могут быть связаны с изменениями формата данных, но если вы используете только NSUserDefaults и стандартные объекты, сохраняющие plist (NSString, NSDictionary, NSNumber, NSArray, NSNumber и примитивы), вы должны быть в безопасности.

Ответ 2

Есть простой способ сделать именно это Чтобы сохранить:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"TextToSave" forKey:@"keyToFindText"];

Для загрузки:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *textToLoad = [prefs stringForKey:@"keyToFindText"];

Важно то, что вы не храните очень большие значения в NSUserDefaults. Если у вас возникнут проблемы с обзором Apple,

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

Ответ 3

Это действительно зависит от того, что вы делаете, и от ваших потребностей.

Если это небольшое количество данных NSUserDefaults - отличный способ. Вы также можете сохранить словарь или массив в папке "Документы приложений", а затем загрузить этот файл при запуске.

SQLite хорош, но если у вас нет большого количества данных, которые вы будете запрашивать, это немного больше, чем просто сохранение состояния.

Ответ 4

Я использую sqlite для хранения всех данных приложения и настроек. Чтобы убедиться, что обновления не уничтожают данные, убедитесь, что файл sqlite хранится в каталоге Documents приложения, который не перезаписывается обновлениями. Некоторые из примеров кода ( "SQLite Books", я думаю) Apple предоставляет код для обработки этого.

Ответ 5

для небольших объемов данных NSUserDefaults - идеальное решение, если вам нужен специальный запрос sqlite данных, это путь. Эти два решения идеально подходят для хранения данных на устройстве, если вам нужна большая гибкость и возможности, вы можете рассмотреть возможность удаленного доступа к веб-службам и базе данных сервера.

Ответ 6

Здесь приведена ссылка на дискуссию, которая послужила хорошим примером того, как получить доступ к вашим данным и какой тип схем хранения будет более полезен при определенных обстоятельствах. Решение @Ben Gottlieb находится на цели, я просто подумал, что этот вопрос добавит дополнительный ресурс. Надеюсь, это поможет!

Ответ 7

Наиболее распространенным способом сохранения состояния (данных, информации о приложении и т.д.) является использование Sqlite3. Я не уверен, как это будет уничтожено, но возможно, что процесс обновления может перезаписать файл данных.

Другой вариант - использовать UserPrefs (NSUserDefaults). Опять же, я не уверен, что максимальный размер для этого, или даже если он будет подходящим для данных, которые вам нужно сохранить.