方法签名返回值"Class of type or subclass class"



当你有这样的签名时:

- (UIView *)fooView;

您可以返回UIView *的任何子类(例如UIScrollView)

当你有:

- (Class)anyClass;

你可以返回任何类(不是实例,而是类本身),但是是否有一种方法只允许某个类或子类的类?例如在psuedo代码中:

- ([UIView class])bazClass;

所以这里它应该只能返回一个类UIView的任何子类

根据其他用户的指定,不能。
如果您的目标是指导其他程序员从代码中的方法返回什么(重写或委托方法),您可以:

  • 在评论中写(当然…)
  • 创建如下类型定义

.

typedef Class ClassOfKindUIView;
-(ClassOfKindUIView)class
{
    return [super class];
}

这不会阻止任何东西,但它可以是一个"说话的方法",一个逃避,让程序员停下来思考"这是什么?? ?",然后cmd-click并阅读文档:-)

您要查找的是返回类型的类型绑定。

不幸的是,这在Objective-C中是不可能的,所以恐怕你的运气不好。

相关内容

最新更新