【发布时间】:2021-05-07 11:40:04
【问题描述】:
当初始化程序注入不起作用或创建 mvvm 模块时,我发现自己使用了很多 隐式解包选项:
class TodoView: UIViewController {
var viewModel: TodoViewModelProtocol!
}
不仅看起来不太好,而且总是强制解包如果我需要在显式解包的可选变量上使用 switch 语句也是一种痛苦。
有什么方法可以摆脱隐式展开的可选项,例如在 swift 5 中使用 @properyWrapper?
【问题讨论】:
-
切换到依赖注入是一个可行选项的 SwiftUI。此外,如果您不使用 Storyboard,则可以对
UIViewController子类使用依赖注入。但是,对于UIViews,没有办法创建自定义初始化程序,因此无法正确使用依赖注入。 -
那么您如何在示例中分配属性?
-
感谢您的评论! swiftUI 看起来很有前途,我会检查它!目前我正在使用“builder”类分配每个属性。
标签: swift mvvm dependency-injection optional property-wrapper