OS X: NSUserDefaults не сохраняется

У меня есть изолированное приложение для OSX, и я сохранил некоторые данные в NSUserDefaults, все было нормально, пока я не удалил файл plist из каталога ~ Library/Preferences/.

Я думал, что приложение должно его откликнуться, но это не так. Когда я отлаживаю, я вижу, что

[[NSUserDefaults standardUserDefaults] synchronize] возвращает YES

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

Даже если я скопирую этот файл plist из резервной копии в каталог настроек, приложение не увидит его.

Конечно, plist должен быть сохранен в ID контейнера/моего приложения /Data/Library/Preferences, и когда я копирую файл plist из резервной копии в этот каталог, приложение может его увидеть, но почему этот файл не воссоздан когда я удалил его?

Кто-нибудь знает, почему это?

Ответы

Ответ 2

У меня была эта проблема, вызванная удалением файлов вручную. Вместо этого вы можете использовать команду терминала defaults. Таким образом, я смог reset установить значения по умолчанию, не нарушая ничего. Замените "идентификатор пакета" на ваш идентификатор пакета.

Чтобы просмотреть текущие значения:

defaults read bundle-identifier

Чтобы удалить сохраненные значения:

defaults delete bundle-identifier