Objective C - 何时使用 NSNumber 与 Primitive

djt*_*djt 5 objective-c ios

如果您知道某个 Integer 在其生命周期的至少一个时刻需要用作对象,是否应该NSNumber从一开始就声明并使用它?

我知道计算应该使用原始数据类型来完成,所以你说[NSNumber numberWithInteger: myInt]。但是,如果 90% 的时间您只需要一个基本数据类型,那么另外 10% 的时间是否有理由创建NSNumber并不断使用它[NSNumber intValue]来检索您的原语?尽可能长时间地坚持使用原语是否会带来明显的性能优势,或者 OO 的优势是否会NSNumber超过这些优势?

作为 Objective C 的新手,我也很好奇最佳实践是什么——来自 Ruby 和 PHP 等不会发生这种情况的语言。

Rob*_*ier 4

NSNumber在 Objective-C 中有点罕见。当然不是闻所未闻,但有些罕见。如果您有疑问,您想使用NSInteger. 我写过完整的大型程序,NSNumber其中没有一个程序。

最常见的用途NSNumber是当您想将其放入NSArrayNSDictionary序列化它(例如放入NSUserDefaults)时。大多数时候,数字只是其他对象的属性,例如NSInteger.