【发布时间】:2015-06-07 07:14:58
【问题描述】:
我有一个名为 Social Service 的协议,声明如下:
protocol SocialService: class {
class func testFunc()
}
遵循协议的类可能如下所示:
class Twitter: SocialService {
class func testFunc() {
}
}
我想要一个方法返回一个遵循这个协议的类,所以调用它看起来像这样:
let socialService = socialServiceForServiceType(serviceType: String)
我不确定我需要把什么作为这个函数的返回值类型。例如,这个:
func socialServiceForServiceType(serviceType: String) -> SocialService.Type
这里没有给出错误,但是尝试像上面那样调用它,给出了一个错误:
访问协议类型值“SocialService.Type”的成员是 未实现
编辑:我不想要那种类型的实例,我想要那种类型的类。所以我想要一个 Twitter 类,这样我就可以在上面调用 SocialService 协议中的类方法。
【问题讨论】:
-
我认为你做错了。请在 stackoverflow stackoverflow.com/questions/21817/… 检查此链接。接口/协议意味着一个完整的抽象。