既然有NSMutableArray 为啥还要NSArray?

也可以这样问 就是最初设计NSArray为不可变的目的是什么?

http://blog.sina.com.cn/s/blog_65de545001016vpj.html

提一个很简单的例子,一个类对外开放一个存储某种数据的array(可以说是property声明在.h文件中),外面可以通过读取这个array与该类达到交流的目的,
如果此array可变,则外面就可以修改此array的内容,毫无安全性可言。

这仅仅是一种情况的其中一个例子,开发中处处可以发现。NSArray规范和NSMutableArray方便都是缺一不可的。

嘿嘿 说这么多 都没用 你想想吧 为什么 会有 readonly

打个比方说,你创建了一个数组,你不想别人修改它,如果你使用了NSMutableArray,别人就可以修改你的数组了,是不是不安全呢?所以还是需要NSArray的。

内存问题。可变的是需要事先设置好内存占用,然后一个一个的加上去;NSArray,没这问题;同理字典也是这样的。

说白了就是安全问题,NSArray安全,使用不方便,NSMutableArray不安全,但使用方便,所以二者常常交替使用。个人理解

就像你问 为什么有了 硬盘 还要移动硬盘 一样。。

一个是节约内存,避免碎片化,一个是保证数据的恒定

提一个很简单的例子,一个类对外开放一个存储某种数据的array(可以说是property声明在.h文件中),外面可以通过读取这个array与该类达到交流的目的,
如果此array可变,则外面就可以修改此array的内容,毫无安全性可言。

这仅仅是一种情况的其中一个例子,开发中处处可以发现。NSArray规范和NSMutableArray方便都是缺一不可的。