NSUserDefaults - получение null для всех значений

Пакет настроек должен быть довольно простым, но по какой-то причине я не могу заставить его работать.

В моем комплекте настроек Root.plist я использую PSToggleSwitchSpecifier и PSTextFieldSpecifier. У обоих есть Тип, Заголовок, Ключ и Значение по умолчанию. И он правильно отображается, если посмотреть на него в настройках iPod Touch (и симулятора). Но я не могу получить значения. Они просто возвращаются NULL.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
self.websiteURL = [defaults stringForKey:@"myBaseURL"];

Единственный способ получить какое-либо значение - это войти в настройки и изменить значения на что-то иное, чем значение по умолчанию. Затем, когда я вернусь в приложение, оно будет работать нормально. Как мне настроить его так, чтобы он вообще не требовал открытия настроек?


person RyanJM    schedule 16.09.2010    source источник


Ответы (3)


Попробуйте это.

Я думаю, что возвращение nil для пользовательского значения по умолчанию, пока пользователь не установит его, является поведением по умолчанию. Вам потребуется [defaults registerDefaults:];, чтобы отобразилось значение "по умолчанию".

person Stephen Furlani    schedule 16.09.2010
comment
Мне это кажется очень глупым, но, увы, Apple так устроила. Спасибо, что указали мне правильное направление. developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ - person RyanJM; 16.09.2010

Если кто-то ищет решение для регистрации настроек пользователя по умолчанию, вы можете проверить его на странице здесь, мне очень понравилось.

person user1366802    schedule 24.09.2012

вы можете добавить ключ DefaultValue в свой список для желаемого ключа и установить для него все, что вам нравится (при условии, что он соответствует типу, который вы указали для ключа)

person Jesse Naugher    schedule 16.09.2010
comment
Это странно, у меня есть DefaultValue на обоих. - person RyanJM; 16.09.2010
comment
о, извините, я пропустил эту часть вопроса здесь. см. ответ @stephens :) - person Jesse Naugher; 16.09.2010