Если у вас ограничено известных опций, вы должны использовать enum . Enum может быть CaseIterable
, и вы можете использовать его в случаях all
одновременно!Вы можете switch
для перечисления, и оно автоматически отслеживает добавление и удаление дел, если вы не используете default
дело.Это невозможно с struct
или классом.Даже если вы хотите использовать Int
значение напрямую без rawValue
, вам следует рассмотреть возможность использования static внутри enum следующим образом:
private enum Field {
static let bill = 1
static let cent = 2
static let payer = 3
}
В качестве названия вашего случая это выглядит как Int
значение - это то, что вы хотите сравнить или что-то, что вы должны отправить на сервер и т. д., и оно не является частью самого Field
.Поэтому я рекомендую вместо этого использовать некоторое вычисляемое свойство, кроме rawValue!
private enum Field {
case bill
case cent
case payers
var intValue: Int {
switch self {
case .bill: return 1
case .cent: return 2
case .payers: return 3
}
}
}
Это может занять больше времени и времени на запись, но это более удобно и защищено от ошибок.Вы можете добавить пользовательский инициализатор, если хотите.
- Еще одна вещь
В swift вам следует рассмотреть возможность использования заглавных букв для верблюдатипы.(Enum, Struct, Class)