显然,我不只是在指NSString。有[NSDictionary dictionary]
,[NSArray array]
等等。但是,为什么只要可以发送等等[NSDictionary new]
,就拥有所有这些方法[NSArray new]
?
原因主要是历史原因,因为两者之间的区别是所创建对象的引用计数。自动参考计数几乎完全消除了对参考计数的关注。
+string
以及类似的方法会返回调用者不拥有的对象(它们位于自动释放池中)。+new
另一方面,它是“四个NARC”之一,它确实创建了拥有的引用。
在ARC之前,您将选择一种在特定情况下具有所需的内存管理含义的组件。现在,您可以使用任何您喜欢的东西。在代码级别上没有区别。
在某些循环情况下,您可能会发现它更可取,+new
因为与相比,这显然仍会缩短对象的寿命+string
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句