Удаление пользовательских настроек по умолчанию в Mac OS X 10.10.3
В течение короткого времени (я (думаю, * начиная с Mac OS X 10.10.2) я смог очистить свои настройки в NSUserDefaults с помощью
defaults delete ~/Library/Preference/<my app>.plist
Но внезапно это не работает, и мои настройки кажутся сверхпостоянными. Я также вручную очистил что-либо в "Сохраненных настройках" и выполнил указанную выше команду для "Контейнеров" (хотя песочница была отключена для тестирования в любом случае).
Что еще может держать мои настройки? Я предполагаю, что следующая перезагрузка могла бы очистить это, но я хочу избежать перезагрузки в будущем.
PS Настройки даже пережили перезагрузку:-(
2 ответа
Во-первых, при использовании defaultsВы должны оставить .plist из имени файла - он всегда добавляет это, так что если вы также укажите его defaults попытается удалить "<мое приложение>.plist.plist".
Во-вторых, я думаю, что когда вы указываете полный путь к файлу настроек, вы обходите cfprefsd, который (помимо прочего) кеширует недавно использованные предпочтения. Вы должны либо просто использовать defaults delete <my app>или беги killall cfprefsd перед удалением настроек (но после выхода из приложения).
Обратите внимание, что если приложение находится в песочнице, defaults это неправильный способ удалить настройки - просто убить cfprefsdзатем используйте rm удалить либо весь контейнер песочницы приложения (rm ~/Library/Containers/<my app>) или просто файл настроек (rm ~/Library/Containers/<my app>/Data/Library/Preferences/<my app>.plist)
Регистрироваться ~/Library/Containers/,
Я думаю, что приложения для песочницы (App Store) теперь должны хранить свои вещи там.