Почему stringForKey возвращает ноль? - PullRequest
1 голос
/ 12 мая 2011

в моем viewDidLoad методе я хочу прочитать пользовательские значения по умолчанию. Но

NSLog(@"%@", [prefs stringForKey:@"gateway_picker"]);

отпечатков (null). Почему?

gateway_picker значение по умолчанию установлено на 1 .

1 Ответ

3 голосов
/ 12 мая 2011

Поскольку для него задано значение 1 в виде целого числа, числа с плавающей запятой или логического значения, и в отличие от NSControl, NSUserDefaults не пытается преобразовать значение в запрошенный вами тип.

ИспользованиеobjectForKey: вместо.Это вернет объект независимо от того, является ли он строкой или чем-либо еще.

Если вы затем хотите интерпретировать его численно, запросите у объекта integerValue, floatValue или boolValue.Это будет работать независимо от того, является ли объект NSString или любым видом NSNumber.(Если это данные, дата, массив или словарь, это вызовет исключение. Возможно, вы захотите обнаружить такие значения и подставить значение по умолчанию в этом случае.)

Если вам конкретно нужна строка,определить, является ли объект числом, и спросить его о stringValue, если это так.(Опять же, вы можете также обрабатывать получение данных, даты, массива или словаря.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...