SwinjectLight 是一个轻量级的依赖注入框架,可在任何支持 Swift 的平台上运行。 该框架从原始的 Swinject 实现中汲取灵感,但移除了一些通常不必要的更复杂的功能。
要将包依赖项添加到您的 Xcode 项目,请选择“文件”>“添加包依赖项”,然后输入 https://github.com/marekpridal/SwinjectLight
。
或者,在 Package.swift
中添加以下内容
// swift-tools-version:5.10
import PackageDescription
let package = Package(
name: "SwinjectLightExample",
dependencies: [
.package(url: "https://github.com/marekpridal/SwinjectLight", from: "1.0.0")
],
targets: [
.target(name: "SwinjectLightExample", dependencies: ["SwinjectLight"])
]
)
import SwinjectLight
// Create container
let container = Container()
// Register singleton dependency
container.register(Session.self) { r in
DefaultSession.shared
}
// Register instance based dependency
container.register(Api.self) { r in
Networking(session: r.resolve(Session.self))
}
// Resolve dependency
let api = container.resolve(Api.self)
您还可以查看 repo 中的演示项目,以了解有关用法的更多详细信息。