Как мне узнать, сохранен ли NSUserDefaults? - PullRequest
2 голосов
/ 09 января 2010

Я хочу получить оператор If, который позволит мне узнать, сохранены ли у меня NSUserDefaults или нет.

Ответы [ 2 ]

5 голосов
/ 09 января 2010

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

Однако вы можете принудительно сохранить его, вызвав [[NSUserDefaults sharedUserDefaults] synchronize];, который возвращает BOOL, указывающий, было ли сохранение успешным. Документация для этого метода гласит:

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

0 голосов
/ 09 января 2010

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

Пользовательские значения по умолчанию - это просто словарь, с точки зрения его API, так что вы можете попытаться получить объект для данного ключа. Если возвращаемый объект не является nil, то, очевидно, что-то было сохранено для этого ключа. И наоборот, если возвращаемое значение равно nil, то ничего не было сохранено, и вам, вероятно, следует загрузить объект по умолчанию или выполнить какой-либо другой непредвиденный случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...