Ios 如何使用";访问实例方法;“自我”;在单身班?

Ios 如何使用";访问实例方法;“自我”;在单身班?,ios,objective-c,class,singleton,instance-methods,Ios,Objective C,Class,Singleton,Instance Methods,我在单例类中使用self访问类方法中的实例方法,这显示了错误,但是如果我尝试使用self访问带有参数的实例方法,那么它会很好地工作,所以基本上我想知道我无法访问它的原因 像 如果我尝试对self使用“someMethodA”,那么它工作得非常好,但是使用self访问“someMethodB”会产生错误 +(void)someMethod { [self someMethodA:@"string" withParamB:@"string"]; works fine [self s

我在单例类中使用self访问类方法中的实例方法,这显示了错误,但是如果我尝试使用self访问带有参数的实例方法,那么它会很好地工作,所以基本上我想知道我无法访问它的原因

如果我尝试对self使用“someMethodA”,那么它工作得非常好,但是使用self访问“someMethodB”会产生错误

+(void)someMethod

{

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

   [self someMethodB]; gives error

}
实例方法(以“-”开头的方法)只能由其他实例方法访问,而类方法(以“+”开头的方法)可以通过使用[class_NAME methodName]从任何地方访问

因此,如果需要从类方法访问someMethodB,只需将其更新为类方法,如下所示:

+(void)someMethodB;

错误是怎么说的?“选择器没有已知的类方法”基本上我在类方法中使用方法,即以“+”开头的方法,在类方法中不能使用
self
引用实例方法-
self
在这种情况下不引用实例。您确定
someMethodA
也没有定义为类方法(+)?我怀疑您发送给
someMethodA:
的消息作为实例方法是否正常工作。检查是否有进一步的理解。正如我上面所说的,@Gandalf链接到的问题的答案所解释的,实例方法需要对实例进行操作。类不是实例。您可以在单例实例上调用instance方法,但不能直接在
self
上调用。
+(void)someMethodB;