Yeni, ben hizmet kayıt yaratmaya çalıştığı:Swift'de bağımlılık enjeksiyonunun bundan daha iyi bir yolu var mı? swift için
class ServiceRegistry {
static var instance = ServiceRegistry()
private var registry = [String:AnyObject]()
private init(){}
func register<T>(key:T, value:AnyObject) {
self.registry["\(T.self)"] = value
}
func get<T>(_:T) -> AnyObject? {
return registry["\(T.self)"]
}
}
ama süper dostu değil:
Kayıt:
ServiceRegistry.instance.register(CacheServiceProtocol.self, value:ImageCacheService())
Al:
if let cache = ServiceRegistry.instance.get(CacheServiceProtocol) as? CacheServiceProtocol { ... }
Daha iyi bir yol var mı? Bu faydalı olacaktır if let ...
Swinject hakkında Bu blog yayını da yararlı olabilir: https://yoichitgy.github.io/post/dependency-injection-framework-for-swift-introduction-to-swinject/ –