为什么oc把NSArray设计成不可变的?

语言中类似这样的有很多 java中的string 我想问一下 为什么一开始设计成这样呢?

阅读 2.5k
1 个回答

字符串设计成不可变的主要是为了常量池优化和hashCode应用,如果字符串可变,hashCode就基本没有用武之地了

NSArray,copy的时候只需要retain就可以了,不会创建一个新的对象, 其实也是常量池的思想
另外,相对地,有可变的 NSMutableArray