似乎有不同的实例化NS
Arrays的方法(NSDictionary和其他一些方法相同).
我知道:
> [NSArray数组]
> [NSArray新]
> @ []
> [[NSArray alloc] init]
出于可读性的原因,我通常坚持使用[NSArray数组],但是所有这些之间的区别是什么,它们是否真的一样?
解决方法
结果对于所有这些都是相同的,你得到一个新的空的不可变数组.但是,不同的方法具有不同的内存管理含义.使用ARC这最终没有区别,但在ARC之前,您必须使用正确的版本或发送适当的保留,释放或自动释放消息.
[NSArray new]和[[NSArray alloc] init]返回一个保留计数为1的数组.在ARC之前,您必须释放或自动释放该阵列,否则您将泄漏内存.
[NSArray数组]和@ []返回一个已经自动释放的数组(保留计数0).如果你想让它在没有ARC的情况下坚持下去,你必须手动保留它,否则当弹出当前自动释放池时它将被释放.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。