Почему мой метод не найден? - PullRequest
0 голосов
/ 21 мая 2011

В моем файле h у меня есть

+(CCRenderTexture*) createStroke: (CCLabelTTF*) label
                            size:(float)size   
                           color:(ccColor3B)cor;

В моем файле m я реализовал этот метод и использую его как

CCRenderTexture* stroke = [self createStroke:pause  size:3  color:ccBLACK];

Но это дает мне предупреждение "метод не найден". Почему?

Ответы [ 2 ]

7 голосов
/ 21 мая 2011

Так как +createStroke является методом класса, вы не можете вызвать его на self.Вместо этого вы должны отправить это сообщение классу CCRenderTexture.

Итак, в вашем случае, если self относится к типу CCRenderTexture, вы можете просто заменить его на self.class.(Так что, когда вы создадите подкласс, переопределенный метод будет вызываться суперклассом) Если это не так, напишите что-то вроде:

CCRenderTexture* stroke = [CCRenderTexture createStroke:pause size:3 color:ccBLACK];
2 голосов
/ 21 мая 2011

plus означает, что это метод класса, поэтому вам нужно использовать имя класса вместо экземпляра этого класса: [ClassName createStroke: pause size: 3 color: ccBLACK] Вы, вероятно, хотите иметь метод экземпляра, поэтому поместитеминус вместо плюса в вашей декларации.

Вот еще немного информации по этой теме: В чем разница между методами класса и экземпляра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...