在3.0中,已经不再使用以前的ccarray,ccdictionary,ccint等从以前的oc继承过来的数据类型,转而加入了自己的数据结构,更加符合c++的开发习惯和思考模式,其中就包括了vector,map和value这三种。今天刚好自己研究了相关的源代码,可以结合分析下。
vector就相当于以前的ccarray,对c++的vector做了适当的包装,在一些赋值,释放等相关操作加入了引用计数相关的内存释放操作,使得我们在使用不再需要自己添加retain,release,autorelease等方法。在诸如与所添加对象相关的如insert,push_back,构造函数中加入了retain()方法,而在与删除对象相关的的popback,erase,析构函数等方法中加入release方法,进行计数的减1。从而即能够利用c++标准库的vector带来的使用便利和效率提升,更加符合c++开发者的习惯,也满足了对与内存管理的需要,减少了内存泄漏的可能性。
map相当于ccdictionary,由于map采用的pair作为底层的结构,固为键值对的形式存在,其中包含了一些关于键值的操作。
value相当于以前的ccint、ccfloat、ccchar等基本数据类。