cocos2D-x中CC_REF_PTR_SAFE_RETAIN和CC_SAFE_RETAIN之间的差异

时间:2014-11-13 00:17:37

标签: android c++ cocos2d-x

cocos2D-x中CC_REF_PTR_SAFE_RETAIN和CC_SAFE_RETAIN有什么区别?什么时候使用它们?

1 个答案:

答案 0 :(得分:1)

CC_REF_PTR_SAFE_RETAIN允许在retain()对象上调用const cocos2d::Ref*,而CC_SAFE_RETAIN仅适用于非const cocos2d::Ref*个对象。

E.g。

cocos2d::Ref* obj = <some object>;
const cocos2d::Ref* kObj = <some constant object>;
CC_SAFE_RETAIN(obj); // OK
CC_SAFE_RETAIN(kObj); // Member function 'retain' not viable: 'this' argument has type 'const cocos2d::Ref', but function is not marked const
CC_REF_PTR_SAFE_RETAIN(obj); // OK
CC_REF_PTR_SAFE_RETAIN(kObj); // OK