【问题标题】:Swift - using #available inside Struct for initializing variableSwift - 在 Struct 中使用 #available 来初始化变量
【发布时间】:2018-06-08 07:18:08
【问题描述】:

我需要根据操作系统版本初始化一个变量。我正在尝试在`struct 中使用#available。我需要在声明时初始化一个变量。

这是我尝试过的代码,

struct ColorConstants {

  static var os = 0
  #available(iOS 9, *)
  os = 9

  #available(iOS 10, *)
  os = 10
}

它给了我一个构建错误:

预期声明

【问题讨论】:

  • if 语句需要在函数中。
  • 你是对的,但我会编辑我的问题并进行一些更改。
  • 我需要根据操作系统版本初始化一个变量
  • 你想要完成什么?
  • 为了更清楚而编辑的问题

标签: swift swift-structs


【解决方案1】:

不确定您实际上要做什么,因此可能有更好的方法,但是根据您在问题中显示的内容,您可以尝试以下方法:

static var os: Int {
    if #available(iOS 9, *) {
        return 9
    }
    if #available(iOS 10, *) {
        return 10
    }

    return 0
}

【讨论】:

  • 我试图找到在 Struct 中使用 #available 来初始化变量的正确方法,而无需使用上层 cmets 中所述的任何方法。
  • 您的解决方案对我有用,我仍然会尝试编辑我的问题以更清楚
  • 是的,您非常清楚地表明您正在尝试在结构中使用#available,但正如我所说,您还没有解释您将使用它的目的。例如there are other ways of getting the OS version#available 方法实际上可能不是您想要的,具体取决于您的目标。
  • 感谢您的链接,但是当程序员尝试在结构中使用 #available 时,您的解决方案也适用于许多其他编码场景
  • 好吧,随便玩玩吧
猜你喜欢
  • 2022-01-17
  • 2017-03-20
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多