2010-09-16 3 views
2

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

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

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

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

ответ

4

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

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

+0

Мне это кажется очень глупым, но, увы, это то, как Apple все наладила. Спасибо, что указал мне в правильном направлении. http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/UserDefaults/Tasks/UsingDefaults.html%23//apple_ref/doc/uid/20000719-BAJFBAAH – RyanJM

0

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

+0

Это странная вещь, у меня есть DefaultValue для обоих. – RyanJM

+0

О, я сожалею, что я понял, что эта часть вопроса здесь. см. @stephens answer :) –

1

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

+0

действительно работал для меня! Огромное спасибо. – Samblg