在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
类说明 CrossApp引擎的根类,主要是进行内存的管理,定义部分回调函数指针。引擎绝大部分类派生自CAObject,其共同遵从同一套内存管理方式。 CAObject 属性(点击查看方法介绍)
CAObject方法(点击查看方法介绍)
CrossApp内存管理简介 CrossApp采用引用计数器的方式进行内存的管理,CAObject的派生类都采用这种方式管理对象。最基本的原则就是谁new/retain,谁就负责release,当我们创建一个object时,会自动添加一个计数器,每当对这个object进行引用时,都会使用retain方法进行计数器的加1操作;同样的当释放对这个object的引用时都会调用release方法进行计数器的减1操作,如果引用计数器m_uReference的值为0,就删除此object。 此外,CrossApp还提供了另一种自动管理内存的方式,当我们不确定object在何时释放时,可以调用autorelease方法进行延迟释放object操作,此时object处于自动管理状态,object被加入到自动释放池中,系统会在每帧结束的时候自动对释放池中的所有object进行一次release操作,如果m_uReference的值为0,则删除当前object。 CAObject 属性说明 类型:unsigned int 解释:CAObject的实例对象id,采用累加的方式,初值为零,每创建一个object,m_uID值加1,同时在创建一个object时会将当前对象的m_uReference初始化为1,将当前的m_uAutoReleaseCount初始化为0。 类型:unsigned int 解释:引用计数器,每创建一个object,计数器的值自动加1。
类型:unsigned int 解释:是否自动管理object,如果m_uAutoReleaseCount的值为0,非自动管理方式,当m_uAutoReleaseCount的值为非0,那么采用自动管理的方式。
类型:CAObject* 解释:用户对象。 类型:void* 解释:用户数据。 类型:int 解释:标签。 类型:std::string 解释:文本标签。 CAObject 方法说明 返回值: 参数: 解释:初始化 返回值:void 参数: 解释:对引用计数器m_uReference的值加1。 void release(void) 返回值:void 参数: 解释:对引用计数器m_uReference的值减1,如果m_uReference的值为0,则删除此object。 返回值:CAObject* 参数: 解释:将当前object设置为自动内存管理方式 CAObject* copy(void); 返回值:CAObject* 参数: 解释:复制对象 unsigned int retainCount(void) const 返回值:unsigned int 参数: 解释:返回当前引用计数器m_uReference的值 bool isSingleReference(void) const 返回值:bool 参数: 解释:通过与引用计数器的值做比较,返回object是否只有一个使用者。 virtual bool isEqual(const CAObject* pObject) 返回值: 参数:
解释:虚函数,判断当前对象与指定实例化对象是否相同 |
请发表评论