2016-04-01 73 views
0

我正在訪問類方法中的實例方法通過在單例類中使用self它顯示錯誤,但如果我嘗試訪問實例方法與參數使用自我,那麼它的完美工作,所以基本上我想知道原因,爲什麼我無法訪問此。如何在單例類中使用「self」來訪問實例方法?

-(void)someMethodA:(NSString *)paramA withParamB:(NSString *)paramB; 

-(void)someMethodB; 

,如果我嘗試使用「someMethodA」自那工作完全正常,但訪問「someMethodB」使用自提示錯誤

+(void)someMethod 

{ 

    [self someMethodA:@"string" withParamB:@"string"]; works fine 

    [self someMethodB]; gives error 

} 
+0

錯誤說的是什麼? – Gandalf

+0

「沒有已知類選擇器的方法」 基本上我使用的是類方法內的方法,即以「+」開頭的方法 –

+0

不能在類方法內使用'self'來引用實例方法 - 'self' doesn這裏沒有提到一個實例。你確定'someMethodA'沒有被定義爲類方法(+)嗎? – Paulw11

回答

0

實例方法(方法是以' - '開頭)只能通過其他實例方法訪問,而類方法(以'+'開頭的方法)可以通過使用[CLASS_NAME methodName]從任何地方訪問

因此,如果您需要從您的班級方法訪問某些方法B,則只需將其更新爲班級方法,如下所示:

+(void)someMethodB; 
相關問題