0
我要做的是在Swift中模块化我们的应用程序。模块通过协议(称为服务)相互通信。这里是我的假设:任何使Swift中的类符合通用协议的方法?
protocol Service {
var provider: Any? { get }
}
struct ServiceProvider<T> {
static func provider() -> Any? {
// compile error here, any workaround?
struct Imp: T {}
return Imp.provider
}
}
/********** Shopping Trolly Module ************/
public protocol ShoppingTrollyService {}
// provide
extension ShoppingTrollyService {
var provider: Any? {
return ShoppingTrollyServiceProvider()
}
}
//this class can not be accessed from other module directly
class ShoppingTrollyServiceProvider: ShoppingTrollyService {}
然后在其他模块:
let x = ServiceProvider<ShoppingTrollyService>.provider()
// then call function provided by ShoppingTrollyService
但我被困在创建一个具体的实例符合某些协议(如上图所示的错误)。任何想法?