Enumerations are a programming construct that let you define a value type with a finite set of options. Most languages have enumerations (usually abbreviated to enums), including C and, by extension, Objective-C.
An example of an enum from the iOS/macOS SDK is NSComparisonResult, which you would use when sorting items. When comparing for the purposes of sorting, there are only three possible results from a comparison:
- ascending : The items are ordered in ascending order
- descending : The items are ordered in descending order
- same : The items are the same
There are a finite number of possible options for a comparison result; therefore, it's a perfect candidate for being represented by an enum:
enum ComparisonResult : Int {
case orderedAscending
case orderedSame
case orderedDescending
}
Swift takes the enum concept and elevates it to a first class type. As we will see, this makes enums a very powerful tool for modeling your information.
This recipe will examine how and when to use enums in Swift.