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
但我被困在創建一個具體的實例符合某些協議(如上圖所示的錯誤)。任何想法?