2011-05-21 165 views
0

在我的.h文件我有爲什麼我的方法找不到?

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

在我的M檔我實現了這個方法,並使用它像

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

但它給我一個警告「未找到方法」。爲什麼?

+1

你在哪裏調用該方法?在另一個類方法或實例方法中? – Eimantas 2011-05-21 11:43:45

+0

在我初始化我的實例的初始化方法中 – 2011-05-21 11:44:37

+2

太懶了,實際上不能解釋它,所以就像註釋一樣:刪除+並插入 - 代替。或者:不要使用self而是使用CCRenderTexture。 – JustSid 2011-05-21 11:51:06

回答

7

由於+createStroke是一種類方法,因此不能在self上調用它。您應該將該消息發送到CCRenderTexture類。

因此,在您的情況下,如果selfCCRenderTexture類型,則可以用self.class替換它。 (所以,當你將繼承,重寫的方法將被超調用) 如果不是,寫類似:

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

加上意味着它是一個類的方法,所以你需要使用類名稱,而不是該類的實例:[ClassName createStroke:pause size:3 color:ccBLACK] 您可能想要一個實例方法,因此在聲明中加上減號而不是加號。

以下是關於此主題的更多信息:What is the difference between class and instance methods?

相關問題