文档章节

经常看到用[@[] mutableCopy]创建NSMutableArray,但未必好

yoyoso
 yoyoso
发布于 2015/05/26 11:05
字数 207
阅读 2885
收藏 0

The following should be avoided:

NSMutableArray *aMutableArray = [@[] mutableCopy];

The problems with the previous notation are both of efficiency and readability. On the efficiency side, an unnecessarily immutable object is created and immediately thrown away; this unlikely will slow down your app (unless the method here is called frequently) but there is really no reason to do this just to save some characters. Regarding the readability, we can see two problems here: the first is that when scanning through the code and seeing @[] your mind is immediately connected to and instance of NSArray, but in this case you need to stop and check more thoughtfully. Another aspect to take into account is that it would be very likely that someone with less experience will see your code and depending on his background he might not be very comfortable with the dichotomy between mutable and immutable objects. He or she could not be very familiar with the meaning of creating a mutable copy (obviously we are not suggesting that this knowledge is not necessary). Again, this is not something absolutely wrong but is more about code usability (that includes readability).

来源:https://github.com/objc-zen/objc-zen-book

© 著作权归作者所有

yoyoso
粉丝 49
博文 129
码字总数 45109
作品 0
南京
高级程序员
私信 提问
IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解

阅读本文之前首先了解copy与retain的区别,如果有不正确的地方望大家多多指教: copy与retain的区别: copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。Copy属性表示两个对象内...

木木情深
2014/02/19
0
0
iOS 数组~画饼图-添加数据优化

//联系人:石虎QQ:1224614774昵称:嗡嘛呢叭咪哄 一、概念 - (void)viewDidLoad { [superviewDidLoad]; //初始化 SHPieChart *chart = [[SHPieChart alloc]initWithFrame:CGRectMake(0,40, SH......

石虎132
2017/12/11
0
0
ios 深浅拷贝学习

ios 深浅拷贝学习 这里主要侧重于集合类的深浅拷贝,主要事因为工作的时候遇到这个问题。 有不足的地方欢迎指正,转载请注明。 首先我们需要有这样的一个前提: [array addObject:obj]; 这样...

晨曦之光
2012/05/28
556
0
copy与mutableCopy区别,strong和copy的使用

本篇文章主要讲两个知识点:1.深拷贝与浅拷贝 2.NSArray和NSMutaleArray应该用copy还是stong修饰。 一、我们先来分析深拷贝(返回一个对象,一个新的指针指向一个新的内容)与浅拷贝(返回一个...

Jesse1949
2017/09/01
0
0
copy与mutableCopy

一、深拷贝和浅拷贝 深拷贝:对象拷贝 - 直接拷贝内容。 浅拷贝:指针拷贝 - 将指针中的地址值拷贝一份。 二、对于 Copy 与 mutableCopy 的实践 思路:我用四个方案来验证 Copy 与 mutableC...

JlongTian
2016/01/05
24
0

没有更多内容

加载失败,请刷新页面

加载更多

苹果面向Mac发布英特尔处理器漏洞缓解措施

去年苹果向Safari浏览器推出安全更新以修复基于ARM价格和英特尔的处理器存在的推测执行系列安全漏洞。 不过当时苹果并未发布有关处理器性能下降的测试结果,但大家都知道安装缓解措施会造成处...

linux-tao
41分钟前
1
0
第一个vue应用

https://www.bootcdn.cn/vue/ <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> .bg{ color: red; ......

江戸川
51分钟前
3
0
NCRE考试感想 四级嵌入式(下)

权威的官方文件 考试时间:2017年3月 经验写于:2017年5月 万事万物都在变化,四级嵌入式也是如此。所以,该经验仅作为参考,官方的文件才是权威。   做题经验 第一遍做题库时,拿眼睛看,看...

志成就
今天
2
0
共享Session

分布式系统中,Session 共享有很多的解决方案,其中托管到缓存中应该是最常用的方案之一。 spring官方说明: Spring Session 提供了一套创建和管理 Servlet HttpSession 的方案。Spring Sess...

贾峰uk
今天
2
0
秒杀

少年已不再年少
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部