将实例方法更改为类方法时的self关键字语义

时间:2015-07-09 14:30:24

标签: ios

-(UIView*)showMenu{
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 400)];
    [view addSubview:self.menuTableView];
    return view;
}

我有这个非常简单的功能,工作正常。但后来我想让函数成为一个类方法(所以我不必让类的实例使用它...),因此用+作为前缀加上它。

导致错误消息:成员引用类型'struct obj_class'是指针,也许你打算使用 - >。我试试,但仍然是错误。有人可以向我解释为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

实例方法中的

self变量是指调用实例方法的对象的实例。

由于类方法与任何特定实例无关,因此self表示定义类方法的Class对象。由于Class类没有名为menuTableView的成员,因此编译器会报告错误。