一个用于简单依赖注入的 Swift 包,同时也支持 SwiftUI 预览。

特性

用法

Injector 使用 注射器 的概念

extension Syringe {

}

装满 药物

extension Syringe {
  // Same mock for all environments
  static let person = Medicine<PersonType>(Person(), mock: Person_Mock())
  // Unique mock for all environments
  static let cat = Medicine<CatType>(
      Cat(), 
      unitTests: Cat_Mock("Mary"), 
      uiTests: Cat_Mock("Sam"), 
      swiftUIPreview: Cat_Mock("Kerry")
  )
  // See Medicine initializer for all combinations
}

并在运行时进行 注入

let person = Syringe.person.inject()
// or
let person = Syringe.person()
// or
@Inject(Syringe.person) var person

执行 clean 操作将重置实例

Syringe.clean()

安装

SPM

https://github.com/ptrkstr/injector