Где разместить enum, связанный с контроллером вида - PullRequest
0 голосов
/ 06 февраля 2019

Ситуация

У меня есть контроллер просмотра страниц с количеством контроллеров дочерних представлений.Каждый из дочерних контроллеров представления немного отличается.

Чтобы упростить управление, я определил enum MyPageViewChild

enum MyPageViewChild {
    case someName...
    case someName...
    case someName...
    case someName...
    case someName...
    case someName...
    case someName...
}


Проблема

Я изо всех сил пытаюсь выяснить, где находится лучший файл для размещения перечисления.

Когда перечисление короткое (как без дополнительных переменных var & funcs, кроме объявления регистра), я, вероятно, был бы в порядкепоместить его в тот же файл, что и контроллер представления страницы.

Когда перечисление было довольно длинным, например, иметь много дополнительных переменных и функций, оно должно быть где-то, но не внутри того же файла, что и контроллер представления страницы..


Вопрос

Он тесно связан с контроллерами представления, поэтому я планирую создать файл PageViewChild.swift и поместить его в тот же файл, что и просмотр страницы.Контроллер.

Таким образом, каталог (или фактически группа XCode) будет выглядеть следующим образом.

- ViewController
    - MyPageViewChild.swlft <- enum among with view controllers
    - MyPageViewController.swift
    - MyPageViewChildOne
    - MyPageViewChildTwo
    - MyPageViewChildThree

Будет ли приведенный выше пример в порядке, или он должен располагаться где-то как в каталоге модели или eкаталог nums внутри проекта?

1 Ответ

0 голосов
/ 06 февраля 2019

Прежде всего, я должен сказать, что это вопрос, основанный на мнении, он действительно зависит от вашей организации кода.

В любом случае, нет никакой разницы, если вы объявляете enum в области видимости класса или вне области видимости.,Единственное, что вы должны иметь в виду, это то, что если вам нужно получить ссылку на него, вы должны указать, где enum объявлен

SomeClass.Enum

Я думаю, если enum сильно связан с каким-то другим классом,нормально объявлять enum внутри области видимости связанного класса.Такое поведение мы можем видеть, например, в новых версиях Swift, где много перечислений было переименовано в (в основном, enum был перемещен в область видимости связанного класса и переименован в умное короткое имя с самоописанием)

Хорошим примером может быть переименование enum для событий, связанных с UIControl

UIControlEvents -> UIControl.Event

Так вы видите эту стратегию?Итак, решите.

...