使用NSNumber文字创建对象

时间:2015-08-09 12:56:03

标签: objective-c literals nsnumber

这两种异议创建方法有什么区别?

  1. NSNumber *aInt= @54;

  2. NSNumber *aInt= [NSNumber numberWithInt:54];

  3. 我知道第一种方法是NSNumber文字,第二种方法是NSNumber类方法。两者都用于创建NSNumber对象。但哪种方法更好? 如果我使用文字样式创建对象,那么如何分配内存?第二种方法有何不同?请建议我关于这些概念的一些关键点,以便我更喜欢更好的方法来创建NSNumber对象。

    我知道在运行时创建的对象。文字对象是否也在运行时创建?请提供一些必要的要点,以澄清我的怀疑。

2 个答案:

答案 0 :(得分:2)

他们是完全相同的。实际上,它们在编译期间被转换为相同的代码。

我总是选择文字,因为它更容易阅读。

答案 1 :(得分:0)

  

这两种反对方法之间有什么区别   创建

他们是完全相同的。

答案:

没有。 1:

使用@ - 前缀会自动换行标量类型,例如intfloat

没有。 2:

使用numberWith[type]专门创建NSNumber,因此易于区分。

我不太确定它的内存管理,但我认为,谈论内存分配它是一样的。

我个人使用numberWith[type],因为它更易于区分(对我来说),我的意思是它所拥有的类型,我不必担心向后兼容性,但我仍然对文字知识如此我没有任何问题使用它。

更好的方法很难回答,完全取决于您/开发人员。

您可能还想查看此link

请尽量避免在一篇文章中提出太多问题。干杯! :)