CaseIterable

Isaac·2020년 2월 12일
0

Swift Protocols

목록 보기
1/1
post-thumbnail

정의

자신이 가지고 있는 모든 값들의 Collection을 제공하는 Type

개요

일반적으로, CaseIterable을 따르는 타입은 Associated value가 없는 Enumeration입니다. 이 프로토콜을 따르는 Enumeration에서 allCases속성에 접근 하면 모든 case를 포함하는 collection을 얻을 수 있습니다.

아래와 같이 CaseIterable을 따르는 Enumeration CompassDirectionnorth, south, east, west 4개의 case를 가지며, allCases 속성을 출력하면 ["north", "south", "east", "west"]가 출력됩니다.

enum CompassDirection: CaseIterable {
    case north, south, east, west
}

print("There are \(CompassDirection.allCases.count) directions.")
// Prints "There are 4 directions."
let caseList = CompassDirection.allCases
                               .map({ "\($0)" })
                               .joined(separator: ", ")
// caseList == "north, south, east, west"

주의할 점

CaseIterable의 경우 Associated Value혹은 @available attribute를 사용하는 속성값이 있는 Enumeration에서는 사용할 수 없습니다.

Reference

CaseIterable in Apple Developer Documents

profile
이것 저것 즐겨하는 개발자입니다.

0개의 댓글