Michael Long
1 min readApr 29, 2020

--

This is the current implementation from Resolver.

@propertyWrapper
public struct Injected<Service> {
private var service: Service
public init() {
self.service = Resolver.resolve(Service.self)
}
public init(name: String? = nil, container: Resolver? = nil) {
self.service = container?.resolve(Service.self, name: name) ?? Resolver.resolve(Service.self, name: name)
}
public var wrappedValue: Service {
get { return service }
mutating set { service = newValue }
}
public var projectedValue: Injected<Service> {
get { return self }
mutating set { self = newValue }
}
}

--

--

Michael Long
Michael Long

Written by Michael Long

I write about Apple, Swift, and SwiftUI in particular, and technology in general. I'm also a Lead iOS Engineer at InRhythm, a modern digital consulting firm.

No responses yet