【发布时间】:2015-10-27 15:12:55
【问题描述】:
我想在静态方法中使用 self 作为类类型,但出现编译时错误。
这是我的测试代码:
protocol JSONMappable {
static func map(JSON: AnyObject!) -> Self
}
class Model : JSONMappable, Mappable {
required init?(_ map: Map){
}
func mapping(map: Map) {
}
static func map(JSON: AnyObject!) -> Self {
return Mapper<self>().map(JSON)
}
}
所以在静态方法映射中我想使用 self 作为类类型,我也尝试了 self.Type,但我得到了同样的错误。我不想使用类名,因为当在subclass 上调用它时,我需要这个方法使用subclass 类名。例如,如果我有:
class SubClass : Model {
}
然后调用:
SubClass.map(JSON)
我需要在此方法中使用SubClass 而不是Model。
所以我想知道这是否可能?
【问题讨论】:
-
为什么要返回self?
-
@Lukas 这里的尝试是返回该类型的实例
标签: swift