在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];