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

时间:2011-09-26 07:49:53

标签: ios objective-c this self

使用Xcode。

在这段代码中(func在接口中声明),告诉subj错误,站在带有'self'的字符串上。

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

什么......?

1 个答案:

答案 0 :(得分:7)

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

您正试图在类级别方法+(void)...中使用它,其中self没有任何意义。尝试使用共享实例,或将有问题的类的实例传递给方法。

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

修改

我的评论者指出self确实在班级语境中有意义,但它指的是班级本身。这意味着你试图调用一个看起来像这样的方法:

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

你的目标应该是:

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