How to find the length or count of a Swift Enum with example

An enum is a group of case statements with fixed values.

This tutorial explains the length of a Swift Enum

enum WeekEnd {
    case Saturday
    case Sunday
}

print(WeekEnd.count)

It throws an error main.swift:6:15: error: type 'WeekEnd' has no member 'count'. There is no method count in swift e

Swift Enum count cases

There are multiple ways to get the count of cases in a swift enumeration.

  • using CaseIterable protocol

add CaseIterable to enum and It provides an allCases function that returns a sequence of collection of enum cases. you can call the count property to return the length of an enum.

enum WeekEnd:CaseIterable  {
    case Saturday
    case Sunday
}

print(WeekEnd.allCases)  // [main.WeekEnd.Saturday, main.WeekEnd.Sunday]
print(WeekEnd.allCases.count)  // 2
  • add custom method count by implementing Int

Add static count method that returns Int value. Using a while loop iterates all cases and increments the count value by 1.

Here is an example

enum WeekEnd:Int   {
    case Saturday
    case Sunday
      static let count: Int = {
        var max: Int = 0
        while let _ = WeekEnd(rawValue: max) {
                max += 1 }
        return max
    }()

}

print(WeekEnd.count) //2