http://cocos2d-x.org/projects/cocos2d-x/wiki/About_static_contructor_API_changes_in_cocos2d-x_20
上面说用静态的create方法, 即可创建一个autorelease的对象, 这个设计很好
但这样做的话,视乎对于继承(比如CCSprite)不是太友好啊, 子类不具有创建自身的autorelease对象的静态方法, 如果需要的话需要重写create.
求解…
http://cocos2d-x.org/projects/cocos2d-x/wiki/About_static_contructor_API_changes_in_cocos2d-x_20
上面说用静态的create方法, 即可创建一个autorelease的对象, 这个设计很好
但这样做的话,视乎对于继承(比如CCSprite)不是太友好啊, 子类不具有创建自身的autorelease对象的静态方法, 如果需要的话需要重写create.
求解…
难道没人继承CCSprite的吗???
不知道你要干什么,静态方法是不能继承的,它属于类而不属于对象。对于内存的释放问题,cocos2d-x采用了计数器,资源引用一次,count() 自动加1,为0时自动释放。
非常感谢上面的回答, 不知道是不是我没说清楚, 现在重新描述一下:
对于CCSprite的create函数将创建一个autorelease的对象;
但是, 假若我继承了CCSprite这个类, 就不再有create这个静态方法了, 此时就需要重写create;
这里有没有比较便捷的方法呢?
比如, 我继承CCLayer, 有一个LAYER_CREATE_FUNC的宏, 让CCLayer的子类具有静态create函数