use*_*578 10 iphone objective-c plist nsnumber ios
如果整数不能写入字典然后写入.plist,但NSNumbers可以更好地在整个应用程序中使用NSNumbers,而不是需要转换每次保存或从.plist加载字典?
作为概括:只需坚持使用POD类型,直到您需要使用基于对象的表示,例如NSNumber.POD的性能要好得多,但NSNumber在某些情况下你需要.
在某些情况下,它可能是有意义的使用NSNumber,而不是-这通常是当你重复使用一个NSNumber经常-这是为了避免一吨重复的NSNumber秒.除了序列化和通用objc接口(绑定,变换器,字典)之外,这种情况很少发生.
更新/详细信息: ObjC运行时在某些情况下,在某些体系结构上,在某些OS版本上替换表示特定类型和域的s的标记指针NSNumber.尽管自几年前最初写的内部代表发生了变化,但这里有一个很好的介绍:http://objectivistc.tumblr.com/post/7872364181/tagged-pointers-and-fast-pathed-cfnumber-integers -in.如果可以使用它,它可以避免像分配,锁定和引用计数操作等慢速操作.尽管如此,标记指针无法表示每个数字并且会引入开销,因此您仍然应该优先使用基本内置函数NSNumber作为默认值.标记指针在适用的情况下是一个很好的优化,但是当你只需要一个数字时,它远没有与内置竞争.