Swift - использование #available внутри Struct для инициализации переменной

Мне нужно инициализировать переменную в зависимости от версии ОС. Я пытаюсь использовать #available внутри структуры. Мне нужно инициализировать переменную во время объявления.

Вот мой код, который я пробовал,

struct ColorConstants {

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

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

Это дает мне ошибку сборки:

Ожидаемая декларация

скриншот ошибки кода

1 ответ

Решение

Не уверен, что вы на самом деле пытаетесь сделать, так что, возможно, есть более подходящие подходы, но, основываясь буквально на том, что вы показываете в своем вопросе, вы можете попробовать что-то вроде этого:

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

    return 0
}
Другие вопросы по тегам