У меня возникла проблема с программированием приложения osx на Xcode 5 при использовании NSUserDefaults. Обычно мы используем [[NSUserDefaults standardUserDefaults] setObject:@"This is an object" forKey:@"Test"]
для запоминания предпочтений пользователя. После этого приложение будет генерировать файл plist в ~/Library/Preferences/application.bundle.identifier.plist.
Проблема заключается в том, что после удаления файла plist приложение все равно может получить настройки, которые я сохранил. Невозможно очистить этот plist, даже если я попытался очистить проект, перезапустить xcode, удалить файлы в производной папке. Единственный способ решить эту проблему - перезагрузить систему, поэтому я думаю, что в памяти есть что-то. Вопрос в том, как я могу очистить эти сохраненные настройки? (Я не думаю, что удобно очищать предпочтения, добавляя код вручную при отладке и тестировании.) И я попробовал бывшую версию Xcode 4.x, нет такой проблемы. Любой, кто заинтересован, может просто создать новый проект cocoa и добавить код, например:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"This is an object." forKey:@"Test"];
NSLog(@"%@", [defaults objectForKey:@"Test"]);
в разделе "applicationDidFinishLaunching". Затем перейдите и удалите ~/Library/Preferences/application.bundle.identifier.plist
.
После этого прокомментируйте строку: [defaults setObject:@"This is an object." forKey:@"Test"];
в вашем коде и снова запустить приложение. Консоль покажет "This is an object."
Моя среда - Mavericks GM и Xcode 5.0 (5a1413).
Надеюсь, что это не то, что только что произошло со мной и оценило любую помощь!