[WIP] DIAttribute 引入了依赖注入属性。
你可以使用 Xcode 11 中的 Swift Package Manager 安装这个框架。
final class ViewController: UIViewController {
@Inject(Self.self) var apiClient: APIClientProtocol
...
}
// Production
DIResolver.register(ViewController.self, keyPath: \.apiClient, value: ProductionAPIClient())
// Test
DIResolver.register(ViewController.self, keyPath: \.apiClient, value: MockAPIClient())
struct Environment {
@Inject(Self.self) var endpoint: URL
@Inject(Self.self) var timeZone: TimeZone
}
DIResolver.register(Environment.self) {
Register(URL.self, URL(string: "https://example.com")!)
Register(TimeZone.self, TimeZone(identifier: "Asia/Tokyo")!)
}
DIAttribute 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。