我通过在单例类中使用self来访问类方法中的实例方法它显示错误,但是如果我尝试使用self访问实例方法然后它完全正常工作,那么基本上我想知道原因,为什么我我无法访问它。
喜欢
-(void)someMethodA:(NSString *)paramA withParamB:(NSString *)paramB;
-(void)someMethodB;
如果我尝试使用self的“someMethodA”然后它工作得很好,但是使用self访问“someMethodB”会出错
+(void)someMethod
{
[self someMethodA:@"string" withParamB:@"string"]; works fine
[self someMethodB]; gives error
}
答案 0 :(得分:0)
实例方法(以' - '开头的方法)只能由其他实例方法访问,而类方法(以' +'开头的方法)可以被访问使用[CLASS_NAME methodName]
从任意位置开始因此,如果您需要从类方法访问someMethodB,那么只需将其更新为类方法,如下所示:
+(void)someMethodB;