【问题标题】:Swift Error "Variable used within its own initial value"Swift 错误“变量在其自己的初始值内使用”
【发布时间】:2017-04-19 19:54:30
【问题描述】:

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

    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()

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

【问题讨论】:

    标签: ios swift xcode xcode-ui-testing


    【解决方案1】:

    这是因为在您的行号中。 5、你写了

    let alert = alert.buttons["OK"]
    

    alert 从未在这一行之前声明过,所以你不能这样写。

    以本例为例,

    let a = a+5
    

    现在编译器会抛出同样的错误,因为它不知道 'a' 的值,因为它之前没有声明过。

    【讨论】:

    • 好的,那我之前要怎么声明alert呢?
    • 我不熟悉 Xcode 测试,只是回答了你的问题。搜索了一下后在互联网上找到了这个 - let alert = app.alerts.elementBoundByIndex(0).buttons["OK"] - try once
    • 如果没有帮助,请尝试此链接stackoverflow.com/questions/32148965/… 或等待有相关知识的人回答
    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多