对于许多类,有initXXX方法和typeXXX方法,例如:
NSNumber *n1 = [[NSNumber alloc] initWithInt:1];
NSNumber *n2 = [NSNumber numberWithInt:1];
我已经阅读了有关手动内存管理的内容,我认为我理解这些内容与手动内存管理有何不同(第二种只是自动释放对象的快捷方式)。
但是使用ARC我不明白我应该使用哪种API?我是否应该只使用alloc-init模式,因为ARC足够智能,可以在必要时自动释放值,并在仅在本地使用值时避免自动释放开销?或者ARC可以优化自动释放和相应的开销,即使我使用像numberWithInt?
这样的东西我想在可用时使用第二种变体,因为它更短更容易阅读。但出于这个原因,我不想引入性能开销。
答案 0 :(得分:5)
或者ARC可以优化自动释放和相应的开销,即使我使用像numberWithInt这样的东西?
即使有这些便利工厂(他们也称之为)方法,它也可以。 Here所有问题都得到了解释。
所以你可以使用其中任何一个。