NSUserDefaults和原始数据类型?
问题描述:
是什么的方法NSUserDefaults的诸如-setFloat点:forKey:和-floatForKey:时-registerDefaults:只接受的NSDictionary也不能容纳任何原始数据类型 - 只能对象。NSUserDefaults和原始数据类型?
相反,它似乎我必须使用-setObject:forKey和-objectForKey:只有存储NSNumber的对象,如果我希望能够给我浮标任何实际的默认值。
我在这里错过了什么?
答
setFloat:
只是一个方便的方法,创建一个NSNumber,然后将其传递给setObject:
。 floatForKey:
则相反。
NSDictionary
只能容纳对象类型,因此您需要将基元包裹在适当的对象中。所以是的,你需要做你正在做的事情来设置默认的默认值。
如果你可以直接在NSDictionary上使用这些方法,这将是一个非常平凡的类别来写。
Ahhha ...那么它可以在NSDictionary中使用NSNumbers对-registerDefaults进行处理,然后使用-floatForKey:和-setFloat:ForKey:方便地完成代码整理。很感谢。 – trapper 2011-12-20 17:20:30