HIT해

[iOS/SwiftUI] Enum CaseIterable 적용해보기 본문

Swift/Swift 개발 노트

[iOS/SwiftUI] Enum CaseIterable 적용해보기

힛해 2024. 8. 20. 11:57
728x90

https://developer.apple.com/documentation/swift/caseiterable

 

CaseIterable | Apple Developer Documentation

A type that provides a collection of all of its values.

developer.apple.com

 

enum으로 얼굴 상태들을 선언해주고 바꿀 수 있는 버튼을 만들어보자!

 

1. enum 선언

enum Face : String,CaseIterable {
    case sparkle
    case sosim
    case saechim
    case nareun
    case meong
    case cupid
    case bboombboom
    case balral
    case chic
}

 

CaseIterable 프로토콜로 선언을 해주어야 allCases를 활용해 배열처럼 사용할 수 있고

String 프로토콜을 사용해야 case 값을 사용할 수 있다.

 

2. ForEach 버튼 생성하기

 HStack {
                            ForEach(Face.allCases, id: \.self) { face in
                                Button(action: {
                                    selectedFace = face
                                    print("selected : ", selectedFace)
                                }) {
                                    Text("\(face.rawValue.capitalized)")
                                }
                            }
                        }

 

 

이렇게 만들어주면 Button을 일일히 만들 필요도 없으며 Enum case 명을 제대로 선언해주면 모든 가독성과 유지보수성이 향상되게된다!