似乎有不同的实例化NS
Arrays的
方法(NSDictionary和其他一些
方法相同).
我知道:
> [NSArray数组]
> [NSArray新]
> @ []
> [[NSArray alloc] init]
出于可读性的原因,我通常坚持使用[NSArray数组],但是所有这些之间的区别是什么,它们是否真的一样?
结果对于所有这些都是相同的,你得到一个新的空的不可变数组.但是,不同的
方法具有不同的内存管理含义.使用ARC这最终没有区别,但在ARC之前,您必须使用正确的版本或发送适当的保留,释放或
自动释放消息.
[NSArray new]和[[NSArray alloc] init]返回一个保留计数为1的数组.在ARC之前,您必须释放或自动释放该阵列,否则您将泄漏内存.
[NSArray数组]和@ []返回一个已经自动释放的数组(保留计数0).如果你想让它在没有ARC的情况下坚持下去,你必须手动保留它,否则当弹出当前自动释放池时它将被释放.
原文链接:https://www.f2er.com/iOS/329183.html