Подтвердить что ты не робот

Создание класса для определения констант в быстром

Примечание: Я хочу добиться аналогичной функциональности в swift - Где хранить глобальные константы в приложении iOS?

У меня есть два класса - MasterViewController и DetailViewController

Я хочу определить перечисление (см. ниже перечисление) и использовать его значения в обоих классах:

enum Planet: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}

Я попытался определить его в MasterViewController и использовать его в DetailViewController следующим образом:

let aPlanet = Planet.Earth

но компилятор жалуется:(

"Использование неразрешенного идентификатора Planet"

Как правило, в моем объектном c-коде у меня был файл глобальной константы, который я использовал для импорта в файл app-prefix.pch, который делал его доступным для всех файлов в моем проекте, но в этом случае я не знаю.

4b9b3361

Ответ 1

Если ваше перечисление определяется в классе следующим образом:

class MyClass {
    enum Planet: Int {
        // ...
    }
}

Вы должны получить к нему доступ через свой класс:

var aPlanet = MyClass.Planet.Earth

Вы также хотите использовать свойство rawValue. Вам понадобится, чтобы получить доступ к фактическому значению Int:

var aPlanet = MyClass.Planet.Earth.rawValue

Ответ 2

В swift вы можете объявить перечисление, переменную или функцию вне любого класса или функции, и она будет доступна во всех ваших классах (в глобальном масштабе) (без необходимости импорта определенного файла).