ios 1 cocoa

来源:互联网 发布:数据库英文缩写 编辑:程序博客网 时间:2024/06/08 15:53
CDataVisitor.h.cpp visitor模式实现的观察CObject内部数据成员的类。
其中CCDataVisitor是个虚基类; CCPrettyPrinter是 层次化打印 CObject成员的类。
obj->acceptVisitor(v);
CDataVisitor::acceptVisitor(v) { v.visitObj(obj); }
CCPrettyPrinter::acceptVisitor(v) { v.visit(this); }
void CCPrettyPrinter::visit(const CCBool * p)
{
char buf[50] = {0};
sprintf(buf, "%s", p->getValue() ? "true" : "false");
_result += buf;
}
类的 static create() 函数 一般都是
Obj *o = new Obj;
o->init();
o->autorelease();//加入自动释放池、在释放池关闭时, 会逐个对其中obj的引用计数减去1、到达0时delete对象。
不需要在外部主动释放。
Bool Double Float Integer : 初始化和取值接口; 不能被修改; create && acceptVisitor
CCString封装了std::string, 支持向其他基本类型的转化
CCSet 封装了std::set, 拷贝构造和mutableCopy都是浅复制。【子对象的引用计数+1】
CCArray, 封装了类似vector操作的结构体
typedef struct _ccArray {
unsigned int num, max;
CCObject** arr;
} ccArray;
CCDictionary 自己new的数组+hash模拟的key-value
CCGeometry, 封装了CCPoint、CCSize、CCRect
CCNS,封装几个有用的接口, 从字符串转为CCPoint, CCSize, CCRect
CCZone nothing...
CCAffineTransform 仿射变换
============================
有些容器类型的数据结构, 向其中addobject时, 会给该object的引用计数+1.
目前只看到三个最基本的容器类型: CCSet 和 CCArray 和 CCDictionary。
0 0