cocos2d之关于对象赋值
来源:互联网 发布:ssh 连接指定端口 编辑:程序博客网 时间:2024/06/10 20:36
在C++中我们赋值都是通过 = 来进行赋值的,不过在此之前,我们应该首先要删掉this的某个指针成员,然后进行内存分配和赋值,但是在cocos2d中呢,我们不这样做了,是先release掉,然后再赋值,看例子代码:
void someClass::setObject(CCObject *otherobject) { this->object->release(); otherobject->retain(); this->object = otherobject;}
但是有没有发现有个隐患,当我的object和otherobject是同一个object的时候,接下来release掉,那么如果触发了对象回收,那接下来的行为那不是要出大麻烦了吗?那该怎么去解决这个bug的出现呢,我们应该首先对otherobject进行retain一下,保证有效,然后release一下,然后再进行赋值.
void someClass::setObject(CCObject *otherobject) { otherobject->retain(); this->object->release(); this->object = otherobject;}
当然还有其他的很多办法可以解决了。比如可以使用前一章的autorelease来代替release
0 0
- cocos2d之关于对象赋值
- Cocos2d-Lua之赋值
- Cocos2d-x之 指针的赋值
- Java之对象赋值引用
- 关于对象初始化和赋值的探讨
- 关于Jsion集合赋值对象问题
- 关于将一个对象赋值给另一个对象
- JavaScript之对象拷贝与赋值
- 对象赋值
- 对象赋值
- 关于c++中 类对象的赋值操作
- 关于ActionScript 3.0对象的赋值与引用的对比
- 关于eclips注释模板,和对象之间的赋值
- 关于eclips注释模板,和对象之间的赋值
- C++中关于将对象赋值给整形的过程。
- 关于对象的构造、复制构造、析构、赋值的问题
- 关于copy协议中如何简便的为对象赋值
- cocos2d-x源码剖析之精灵对象
- ActivityGroup相关--getLocalActivityManager() 【转载】
- iOS-NSString ? :
- linux网络协议栈(五)网络层 (9)IPV6
- C# Socket编程笔记
- 利用golang的反射包,实现根据函数名自动调用函数。
- cocos2d之关于对象赋值
- 如何判断三角形能否构成以及三角形的类型
- java调用mysql存储过程(用临时表更新信息表)
- linux网络协议栈(五)网络层 (10)网络层VPN
- openwrt 透明代理上网
- linux网络协议栈(五)网络层 (11)NAT穿越
- linux网络协议栈(六)传输层 (1)传输层基本框架
- 浏览器的工作原理:新式网络浏览器幕后揭秘
- 关于AJAX的ScriptManager.RegisterClientScriptBlock无法弹出对话框的解决方法【归类】