2016-04-01 29 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; 
相关问题