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

17

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

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

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

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

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

let aPlanet = Planet.Earth

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

  

«Использование неразрешенного идентификатора Планета»

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

задан Devarshi 08.08.2014 в 06:27
источник

2 ответа

22

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

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

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

var aPlanet = MyClass.Planet.Earth

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

var aPlanet = MyClass.Planet.Earth.rawValue
    
ответ дан drewag 08.08.2014 в 06:41
источник
18

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

    
ответ дан Atomix 08.08.2014 в 10:57
источник