在objective-c上下文中,“在非成员函数中使用'this'无效?

使用Xcode。

在这个代码中(func是在接口中声明的),告诉subj错误,站在string上'self'。

+ (void) run: (Action) action after: (int) seconds { [self run:action after:seconds repeat:NO]; } 

什么…?

self是一个实例variables,用于引用当前对象的一个​​实例。

你正在尝试在类级别的方法中使用它+(void)... self没有意义。 尝试使用共享实例,或将相关类的实例传递给方法。

 + (void) run:(Action)action on:(MyClass*) instance after:(int) seconds { [instance run:action after:seconds repeat:NO]; } 

编辑

我的评论者指出, self在class级水平上是有意义的,但是它指的是class级本身。 这意味着你试图调用一个如下所示的方法:

  [MyClass run:action after:seconds repeat:NO]; 

你应该瞄准的地方:

  [myClassInstance run:action after:seconds repeat:NO];