当你有这样的签名时:
- (UIView *)fooView;
您可以返回UIView
*的任何子类(例如UIScrollView
)
当你有:
- (Class)anyClass;
你可以返回任何类(不是实例,类本身),但有没有办法只允许某个类或子类的类?例如,伪造的代码:
- ([UIView class])bazClass;
所以在这里它应该只能返回其任何子类的类UIView
。
答案 0 :(得分:1)
根据其他用户的说明,您不能 如果您的目标是指导其他程序员从代码中的方法返回什么(覆盖或委托方法),您可以:
typedef Class ClassOfKindUIView;
-(ClassOfKindUIView)class
{
return [super class];
}
这不会阻止任何事情,但它可以成为一种说话方法"一种escamotage,让程序员停下来思考"这是什么?" ,然后cmd点击并阅读文档: - )
答案 1 :(得分:0)
您正在寻找的是返回类型的一种类型绑定。
不幸的是,这在Objective-C中是不可能的,所以我担心你运气不好。