1

我不明白为什么我需要在测试中的声明中“强制展开”变量类型。

让我举一个例子更清楚:

class testSomething: XCTestCase {

  var mockService: MockService!

  override func setUp() {
    mockService = MockService()
  }
  ...

因此,目标显然是每次运行测试时都创建一个新的模拟服务实例。我只是不明白为什么我需要将此变量声明为MockService!类型。在这种情况下,类型后的感叹号真正意味着什么?

为了清楚起见,当我声明mockService: MockServiceXcode 抱怨我的测试类没有初始化程序时

4

1 回答 1

1

非可选变量必须在声明行中初始化

var mockService = MockService()

或在init()方法中

var mockService : MockService

init() {
  mockService = MockService()
}

如果这不可能,则将变量声明为强制解包,并确保该变量nil在使用时不是。然后它的行为就像一个非可选的。

于 2015-09-29T07:45:32.137 回答