У меня есть приложение, написанное под OS 3.x - тогда оно отлично работало. С момента восстановления для ОС 4.1 он больше не работает в отношении загрузки настроек приложения.NSUserDefaults не загружается в IOS4
У меня есть файл root.plist в комплекте с приложением. Некоторые из настроек по умолчанию уже установлены там, редактируя файл, то есть имя хоста, время ожидания и т. Д. Новый пользователь должен предоставить некоторые учетные данные для входа, чтобы они оставались пустыми. Когда приложение запускается в первый раз, оно обнаруживает недостающие учетные данные и завершает работу, прося пользователя перейти к настройкам и ввести учетные данные. Если я открываю настройки, я вижу, чего я ожидаю; имя хоста, время ожидания и другие значения по умолчанию, как в root.plist. Я ввожу имя пользователя и пароль, а также еще один идентификационный код. Когда я перезапускаю приложение, я возвращаю значения для данных, которые я только что нажал, плюс BOOL protocolswitch = YES (который я не изменил). Другие значения возвращают нуль, несмотря на появление в настройках.
username = [[NSUserDefaults standardUserDefaults] stringForKey:@"name_preference"];
password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password_preference"];
CRMID = [[[[NSUserDefaults standardUserDefaults] stringForKey:@"userID_preference"]uppercaseString] retain];
hostname = [[NSUserDefaults standardUserDefaults] stringForKey:@"hostname_preference"];
protocolSwitch = [[NSUserDefaults standardUserDefaults] boolForKey:@"http_preference"];
timeout = [[NSUserDefaults standardUserDefaults] doubleForKey:@"timeout_preference"];
portNumber = [[NSUserDefaults standardUserDefaults] integerForKey:@"port_preference"];
bccEmail = [[NSUserDefaults standardUserDefaults] stringForKey:@"bcc_email_preference"];
locationOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"location_preference"];
Я знаю, о «синхронизации», но я на самом деле не изменять эти значения внутри моего приложения, так что я не понимаю, как это применяется здесь. Я также убедился, что приложение не работает в фоновом режиме перед перезагрузкой, не имеет значения. Он отлично работал до OS4, кто-нибудь понимает изменения в поведении? Любой способ исправить это? Cheers,
Sarge62.
В результате настройки определенно что-то не так. Сбросив словарные ключи утешать, когда запускает приложение, я вижу это:
"location_preference", NSInterfaceStyle, AppleLanguages, "userID_preference", AppleKeyboardsExpanded, AppleLocale, AppleKeyboards, NSLanguages, "http_preference", "password_preference", "name_preference"
Есть только пять ключей, определенных в PLIST! Если я перейду к настройкам и изменим имя хоста на что-то, отличное от того, что было в plist по умолчанию, оно появится в журнале выше. Кажется, что на экране настроек есть ошибка (?), Которая регистрирует только те ключи, которые были изменены с начального значения по умолчанию (для строковых объектов, по крайней мере, BOOLS в порядке).
случилось со мной тоже начал падать обратно в словарь «расфасованные» по умолчанию при ноль встречается – slf
просто представил Bug ID # 9908757 об этом – slf