Swift错误“变量在其自己的初始值中使用”

时间:2016-12-05 12:08:52

标签: ios swift xcode xcode-ui-testing

我正在为我的应用编写我的XCUITest。 我正在声明警报以便使用waitForExpectationsWithTimeout使我的测试异步....但是它在第5行的Variable used within its own initial value声明中抛出了错误alert

    let timeout = NSTimeInterval()
    let app = XCUIApplication()

    let exists = NSPredicate(format: "exists == 1")
    let alert = alert.buttons["OK"]


    testCase.addUIInterruptionMonitorWithDescription("Enable Notifications") { (alert) -> Bool in
            alert.buttons["OK"].tap()
        return true
    }

    self.buttons["Enable notifications"].tap()
    testCase.expectationForPredicate(exists, evaluatedWithObject: alert, handler: nil)
    testCase.waitForExpectationsWithTimeout(timeout, handler: nil)
    app.tap()

有人可以告诉我为什么会抛出这个错误以及我可以做些什么来解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:4)

这是因为在你的行中没有。 5,你写过

let alert = alert.buttons["OK"]

警告从未在此行之前声明,因此您无法写入此内容。

例如,举个例子,

let a = a+5

现在编译器会抛出相同的错误,因为它不知道' a'因为之前没有宣布过。