我目前正在尝试定义一个方法,该方法以Class
为参数,即特定类型的子类。我目前的实施是:
- (void)methodThatNeedsAClassOfSpecialTypeAsInput:(Class)inClass {}
以NSString
作为示例基类,我尝试NSString.Class
和[NSString class]
来指定参数类,但是
- (void)methodThatNeedsAClassOfSpecialTypeAsInput:([NSString class])inClass { }
不会使用Parse issue: Expected a type
进行编译。
所以问题是:是否有可能使Class
参数类型显式?
或换句话说:我希望我的方法签名语义说:我可以采用NSString class
,只有NSString class
作为参数。
修改
答案是:否。
答案 0 :(得分:3)
你几乎拥有它:
[NSString class]
编辑(问题更新后):
这是定义和声明方法的方法:
- (void)methodThatNeedsAClassOfSpecialTypeAsInput:(Class)inClass { }
但它被称为:
[someObject methodThatNeedsAClassOfSpecialTypeAsInput:[NSString class]];
答案 1 :(得分:0)
你弄错了。方法声明是对的
[obj methodThatNeedsAClassOfSpecialTypeAsInput:[NSString class]];
比,你称之为
inClass
如果在实施中您需要保证,NSString
是if([inClass isSubclassOfClass:[NSString class]]) {
//Do whatever you need
}
,您可以使用
String result = document.toXML().toString();