2011-12-20 67 views
1

是什么的方法NSUserDefaults的诸如-setFloat点:forKey:-floatForKey:-registerDefaults:只接受的NSDictionary也不能容纳任何原始数据类型 - 只能对象。NSUserDefaults和原始数据类型?

相反,它似乎我必须使用-setObject:forKey-objectForKey:只有存储NSNumber的对象,如果我希望能够给我浮标任何实际的默认值。

我在这里错过了什么?

回答

3

setFloat:只是一个方便的方法,创建一个NSNumber,然后将其传递给setObject:floatForKey:则相反。

NSDictionary只能容纳对象类型,因此您需要将基元包裹在适当的对象中。所以是的,你需要做你正在做的事情来设置默认的默认值。

如果你可以直接在NSDictionary上使用这些方法,这将是一个非常平凡的类别来写。

+0

Ahhha ...那么它可以在NSDictionary中使用NSNumbers对-registerDefaults进行处理,然后使用-floatForKey:和-setFloat:ForKey:方便地完成代码整理。很感谢。 – trapper 2011-12-20 17:20:30