2011-12-20 3 views
1

Какой смысл методов NSUserDefaults, таких как -setFloat: forKey: и -floatForKey: когда -registerDefaults: принимает только NSDictionary, который не может содержать каких-либо примитивные типы данных - только объекты.NSUserDefaults и примитивные типы данных?

Вместо этого, кажется, я должен использовать -setObject: forKey и -objectForKey: и хранить только объекты NSNumber, если я хочу, чтобы быть в состоянии дать мои поплавки любые фактические значения по умолчанию.

Что мне здесь не хватает?

ответ

3

setFloat: - это просто удобный метод, который создает NSNumber, а затем передает его на setObject:. floatForKey: делает обратное.

NSDictionary может содержать только объекты, поэтому вам нужно обернуть примитивы в соответствующие объекты. Так что да, вам нужно делать то, что вы делаете, чтобы настроить стандартные значения по умолчанию.

Было бы хорошо, если бы вы могли использовать эти методы непосредственно в NSDictionary, что было бы довольно тривиальной категорией для записи.

+0

Ahhha ... так что это нормально для -registerDefaults с использованием NSNumbers в NSDictionary, а затем использовать -floatForKey: and -setFloat: ForKey: удобство для создания кода. Хорошо, спасибо. – trapper

Смежные вопросы