我的观点是,在某些地方,我们知道变量根本不会有 nil,但由于某种原因,我们无法在类的 init 函数中实例化它,所以我们必须将其设为可选。
我也知道我们可以使用可选绑定或保护技术来轻松摆脱它。
但是,在我看来,由于隐含的 unwrap/force unwrap 让应用程序在一些非常愚蠢的错误中崩溃,这对处于开发阶段的开发人员是有益的。
我的例子是:
class TopStoriesViewModelTests: XCTestCase {
var viewModel: TopStoriesViewModel!
override func setUp() {
super.setUp()
viewModel = TopStoriesViewModel(interactor: MockTopStoriesInteractor())
}
func testArticleDidVisited() {
viewModel.visited = xxxxxx
}
}
在这种情况下,我可以在每个测试用例中制作TopStoriesViewModel
一个?
then 保护它,或者让它,但我觉得没有必要。我知道我也可以用viewModel?.xxx
。但这不是重点。
我的问题是,我在某些特定情况下(例如我给出的示例)是否正确,强制展开/隐式展开是有益的。