在我的文件中,我有
+(CCRenderTexture*) createStroke: (CCLabelTTF*) label
size:(float)size
color:(ccColor3B)cor;
在我的m文件中,我实现了这个方法,并像
一样使用它CCRenderTexture* stroke = [self createStroke:pause size:3 color:ccBLACK];
但它给了我一个警告“找不到的方法”。为什么呢?
答案 0 :(得分:7)
由于+createStroke
是一种类方法,因此无法在self
上调用它。您应该将该消息发送到CCRenderTexture
类。
因此,在您的情况下,如果self
属于CCRenderTexture
类型,则可以将其替换为self.class
。 (因此,当您将子类化时,重写的方法将由超类调用)
如果不是,请写下以下内容:
CCRenderTexture* stroke = [CCRenderTexture createStroke:pause size:3 color:ccBLACK];
答案 1 :(得分:2)
plus表示它是一个类方法,因此您需要使用Class Name而不是该类的实例:[ClassName createStroke:pause size:3 color:ccBLACK] 你可能想要一个实例方法,所以在你的声明中加一个减号而不是加号。
以下是有关此主题的更多信息:What is the difference between class and instance methods?