对于许多类,有 initXXX 方法和 typeXXX 方法,例如:
NSNumber *n1 = [[NSNumber alloc] initWithInt:1];
NSNumber *n2 = [NSNumber numberWithInt:1];
我已经阅读了有关手动内存管理的内容,并且我认为我了解这些行与手动内存管理有何不同(第二个只是自动释放对象的快捷方式)。
但是对于 ARC,我不明白我应该使用哪个 API?我是否应该只使用 alloc-init 模式,因为 ARC 足够聪明,可以在必要时自动释放 value,并在 value 仅在本地使用时避免自动释放开销?或者,即使我使用 numberWithInt 之类的东西,ARC 也可以优化自动释放和相应的开销?
我想在可用时使用第二种变体,因为它更短且更易于阅读。但我不想仅仅因为这个原因而引入性能开销。