通过 mutableCopy 或 arrayWithArray 创建带有文字的 NSMutableArray:[重复]

2024-02-29

可能的重复:
NSMutableDictionary 的字面创建是否比类帮助器方法效率低? https://stackoverflow.com/questions/12426786/is-literal-creation-of-an-nsmutabledictionary-less-efficient-than-the-class-help

根据介绍 ObjectiveC 文字的 WWDC 视频,NSMutableArrays 可以像这样初始化:

[NSMutableArray arrayWithArray:@[]];

但如果我们这样做怎么办:

[@[] mutableCopy];

我知道一个是初始化数组,另一个只是提供浅拷贝;因此内存管理是不同的。但如果我们使用ARC,使用后者有什么缺点呢?是不是比较贵? ARC 可能以不同的方式处理两者,但我只是想知道是否使用mutableCopy是否“更糟”。


在前一种情况下,您最终会添加到当前自动释放池中的两个对象:NSArray 文字和您从中创建的 NSMutableArray。在后者中,文字 NSArray 被添加到自动释放池中,但从它复制的 NSMutableArray 却没有。所以第一种情况是slightly更糟糕的是,从性能角度来看,耗尽自动释放池(例如在运行循环周期结束时)需要连续释放两个对象,而在第二种情况下,副本将与自动释放的文字分开释放。实际上,时间差将是无穷小的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 mutableCopy 或 arrayWithArray 创建带有文字的 NSMutableArray:[重复] 的相关文章

随机推荐