当你有这样的签名时:
- (UIView *)fooView;
您可以返回UIView
*的任何子类(例如UIScrollView
)
当你有:
- (Class)anyClass;
你可以返回任何类(不是实例,而是类本身),但是是否有一种方法只允许某个类或子类的类?例如在psuedo代码中:
- ([UIView class])bazClass;
所以这里它应该只能返回一个类UIView
的任何子类
根据其他用户的指定,不能。
如果您的目标是指导其他程序员从代码中的方法返回什么(重写或委托方法),您可以:
- 在评论中写(当然…)
- 创建如下类型定义
.
typedef Class ClassOfKindUIView;
-(ClassOfKindUIView)class
{
return [super class];
}
这不会阻止任何东西,但它可以是一个"说话的方法",一个逃避,让程序员停下来思考"这是什么?? ?",然后cmd-click并阅读文档:-)
您要查找的是返回类型的类型绑定。
不幸的是,这在Objective-C中是不可能的,所以恐怕你的运气不好。