【发布时间】:2015-09-29 07:29:58
【问题描述】:
我不明白为什么我需要在我的测试声明中“强制展开”变量类型。
让我举个例子更清楚:
class testSomething: XCTestCase {
var mockService: MockService!
override func setUp() {
mockService = MockService()
}
...
所以目标显然是在每次运行测试时创建一个新的模拟服务实例。我只是不明白为什么我需要将此变量声明为MockService! 类型。在这种情况下,类型后面的感叹号到底意味着什么?
明确一点,当我声明 mockService: MockService Xcode 抱怨我的测试类没有初始化器时
【问题讨论】:
-
在这种情况下:
mockService未就地初始化,也未在构造函数中初始化,请尝试注释掉!。看看这个(第二个答案):stackoverflow.com/questions/24006975/… 这里是ImplicitlyUnwrappedOptionals 用例的一个很好的概述。 -
var mockService: MockService!声明了一个类型为ImplicitlyUnwrappedOptional<MockService>的变量。它不会“在它的声明中强制解包变量类型”。 – 我认为这是 stackoverflow.com/questions/24006975/… 的副本。 -
是的,我不知道
implicitly unwrapped optional@DánielNagy 这个词,您能否将您的评论作为回复发表,我会将其标记为最佳回复。
标签: swift syntax optional forced-unwrapping