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


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

我有这个非常简单的函数,它工作得很好。但后来我想让这个函数成为一个类方法(这样我就不必创建一个类的实例来使用它了…),因此用+代替前缀。

导致错误消息:成员引用类型'struct obj_class'是一个指针,也许你打算使用->。我试过了,但还是出错了。有人能告诉我为什么会这样吗?

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

由于类方法不与任何特定实例相关联,因此self表示定义了类方法的Class对象。由于Class类没有成员menuTableView,编译器报错

最新更新