【问题标题】:.joined(separator:) in Swift 4/XCode 9?.joined(separator:) 在 Swift 4/XCode 9 中?
【发布时间】:2018-03-10 13:56:53
【问题描述】:

我正在编写 UITest,最近更新到 Xcode 9。

这行代码报错:

let deleteString = stringValue.characters.map { _ in XCUIKeyboardKeyDelete }.joined(separator: "")

这一行的错误是 .joined(separator:) 并说:

Type of expression is ambiguous without more context

它位于一个函数内部,用于在 UITest 期间从 UITextField 中清除文本。

在我升级到 Xcode 9 之前,这段代码可以运行。 有什么方法可以转换 Swift 4 / Xcode 9 的语法?谢谢!

【问题讨论】:

    标签: ios iphone swift xcode xctest


    【解决方案1】:

    XCUIKeyboardKey 现在是一个枚举。试试这个:

    let deleteString = stringValue.characters.map { _ in XCUIKeyboardKey.delete.rawValue }.joined(separator: "")
    

    【讨论】:

    • 太棒了!提示:每次收到Type is ambiguous 错误时,都意味着一行中有多个错误。它有助于将行分成几个命令以查看发生了什么。在您的示例中,如果您删除连接部分并强制 deleteString 为 String 您可以看到 Enum can't be casted to String 错误:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 2019-03-30
    • 2018-12-06
    相关资源
    最近更新 更多