Поскольку для него задано значение 1 в виде целого числа, числа с плавающей запятой или логического значения, и в отличие от NSControl, NSUserDefaults не пытается преобразовать значение в запрошенный вами тип.
ИспользованиеobjectForKey:
вместо.Это вернет объект независимо от того, является ли он строкой или чем-либо еще.
Если вы затем хотите интерпретировать его численно, запросите у объекта integerValue
, floatValue
или boolValue
.Это будет работать независимо от того, является ли объект NSString или любым видом NSNumber.(Если это данные, дата, массив или словарь, это вызовет исключение. Возможно, вы захотите обнаружить такие значения и подставить значение по умолчанию в этом случае.)
Если вам конкретно нужна строка,определить, является ли объект числом, и спросить его о stringValue
, если это так.(Опять же, вы можете также обрабатывать получение данных, даты, массива или словаря.)