В чем разница между CC_REF_PTR_SAFE_RETAIN и CC_SAFE_RETAIN в cocos2D-x? и когда их использовать?
CC_REF_PTR_SAFE_RETAIN
позволяет вызывать CC_REF_PTR_SAFE_RETAIN
retain()
для объекта const cocos2d::Ref*
, а CC_SAFE_RETAIN
- для объектов non- const
cocos2d::Ref*
.
Например
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
CC_REF_PTR_SAFE_RETAIN
...