如何使用ARC正确初始化目标c中的对象

时间:2013-04-07 18:05:03

标签: objective-c constructor initialization automatic-ref-counting

对于许多类,有initXXX方法和typeXXX方法,例如:

NSNumber *n1 = [[NSNumber alloc] initWithInt:1];
NSNumber *n2 = [NSNumber numberWithInt:1];

我已经阅读了有关手动内存管理的内容,我认为我理解这些内容与手动内存管理有何不同(第二种只是自动释放对象的快捷方式)。

但是使用ARC我不明白我应该使用哪种API?我是否应该只使用alloc-init模式,因为ARC足够智能,可以在必要时自动释放值,并在仅在本地使用值时避免自动释放开销?或者ARC可以优化自动释放和相应的开销,即使我使用像numberWithInt?

这样的东西

我想在可用时使用第二种变体,因为它更短更容易阅读。但出于这个原因,我不想引入性能开销。

1 个答案:

答案 0 :(得分:5)

  

或者ARC可以优化自动释放和相应的开销,即使我使用像numberWithInt这样的东西?

即使有这些便利工厂(他们也称之为)方法,它也可以。 Here所有问题都得到了解释。

所以你可以使用其中任何一个。