【发布时间】:2013-04-07 18:05:02
【问题描述】:
很多类都有initXXX方法和typeXXX方法,例如:
NSNumber *n1 = [[NSNumber alloc] initWithInt:1];
NSNumber *n2 = [NSNumber numberWithInt:1];
我已阅读有关手动内存管理的内容,并且我认为我理解这些行与手动内存管理有何不同(第二个只是自动释放对象的快捷方式)。
但是对于 ARC,我不明白我应该使用哪个 API?我是否应该只使用 alloc-init 模式,因为 ARC 足够聪明,可以在必要时自动释放 value,并在 value 仅在本地使用时避免自动释放开销?或者即使我使用 numberWithInt 之类的东西,ARC 也可以优化自动释放和相应的开销?
我想在可用时使用第二种变体,因为它更短且更易于阅读。但我不想仅仅因为这个原因而引入性能开销。
【问题讨论】:
标签: objective-c constructor initialization automatic-ref-counting