【问题标题】:Swift wrong compile error: default label can only appear in switch statementSwift错误编译错误:默认标签只能出现在switch语句中
【发布时间】:2016-12-07 07:50:21
【问题描述】:

NSFileManager 已在 Swift 2.3 之后重命名为 FileManager。所以做 defaultManager 类方法,现在只是 default 但是当我使用时。

FileManager.default()

编译器错误 icntepret 并抛出错误。

默认标签只能出现在switch语句中

Swift 2.3 和 Xcode 8 beta 3

【问题讨论】:

  • 尝试使用选择器和其中一种 performSelector 方法?或者可能是关闭?
  • 应该是'default'() 我猜即使自动完成功能把default()。它的测试版。
  • 如以下答案中所述。您应该使用。" ` " 而不是 " ' " 以转义关键字。有谁知道如何在评论中写这个避免格式化?
  • @MadNik 你使用<code> 标签来包围反斜杠和反引号。
  • 一些 swift 3 API 用属性替换了共享实例的类方法。通过尝试验证方法的当前状态,我面前没有 API。

标签: swift swift3 xcode8-beta4


【解决方案1】:

这个问题在 Swift 3 中得到修复,不再需要反引号。请注意,默认管理器现在是类属性而不是类方法。所以正确的语法是:

 FileManager.default

【讨论】:

    【解决方案2】:

    我不了解 Swift 2.3,但我认为转义关键字的语法没有改变。毕竟,这不是一个重大更新。

    您可以使用` 字符来转义关键字,以便将关键字用作变量、方法或其他内容的标识符。所以你可以这样做创建一个名为var的变量:

    var `var` = 0
    

    所以如果你只是写:

    FileManager.`default`()
    

    它应该可以工作。

    顺便说一句,我刚刚在文档中查找了 NSFileManager。而且我发现没有default()方法。文档过时了吗?

    【讨论】:

    • 如果我们检查来源,它就在那里。不过还没有更新文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多