无法在符合协议的类上调用类型方法

时间:2014-12-06 06:27:45

标签: swift protocols

我的代码非常简单。

我的协议:

protocol BaseEntity
{
    class func getInstance(sourceObject: [NSObject : AnyObject], context: AnyObject!) -> BaseEntity
    init()
}

然后在另一个班级我有这个方法:

private func convertJSONDictionaryIntoModel(jsonDictionary : [NSObject : AnyObject], mapClass: BaseEntity.Type) -> BaseEntity
{
    let object = mapClass.getInstance(jsonDictionary, context: nil)

    return object
}

我在第一行读到编译错误"访问协议类型值BaseEntity.Type的成员未实现"

据我所知,这在Swift中是可行的。

1 个答案:

答案 0 :(得分:0)

我也遇到过这个!这意味着Swift编程语言不支持协议内部的类方法。对此的解决方法似乎取决于具体情况,并且没有"你应该这样做而不是#34;。如果有人有更好的解决方案,请分享!

类变量也是如此,但有hacky workaround for that.