열거형(Enum) 랜덤하게 쓰기

Duna·2021년 7월 22일
0
post-thumbnail

Enum에 있는 value를 랜덤하게 쓰고 싶어서 이래저래 하던 중에,
랜덤하게 쓰는 법을 찾아냈습니다.🎂


저는 일단 Enum를 하나 선언해줬습니다.

enum MovieFormat: String {
    case iMax = "imax"
    case arthouse = "arthouse"
    case fourDX = "4dx"
    case none
} 

해당 Enum를 사용해서 random하게 사진을 보여줄거라서 String값으로 해줬어요.
각 case의 rawValue가 Asset폴더에 있는 이미지 이름이기 때문에 UIImage(named: [이미지이름])
이렇게 사용가능합니다.

하지만, 저 상태로는 random하게 만드는 함수를 못씁니다.

CaseIterable를 채택해줘야해요.!


CaseIterable이 누군디요?

Apple Developer Documentation - CaseIterable 보러가기🌈

열거형의 값들을 배열 컬렉션과 같이 순회할 수 있도록 해주는 프로토콜 입니다.

이 친구를 써줘야지만 random 가능합니다.

enum MovieFormat: String, CaseIterable {
    case iMax = "imax"
    case arthouse = "arthouse"
    case fourDX = "4dx"
    case none
}

이제 랜덤뽑기를 한 번 해보겠습니다.

private let randomFormat = MovieFormat.allCases.randomElement()!

이렇게 써주면 열거형 모든 case들을 random하게 돌려서 하나를 뽑은 후에 randomFormat으로 넣어줍니다.

movieFormatImageView.image = UIImage(named: randomFormat.rawValue)

randomFormat를 사용하는 방법은 이래요.
해당 format에 있는 rawValue를 빼쓰면 됩니다.
원래 enum은 모든 값에 rawValue가 있어요.
지금은 우리가 String형태로 각각에 rawValue를 넣어줬기 때문에 원하는대로 쇽 나오는걸 볼 수 있습니다.

profile
더 멋진 iOS 개발자를 향해

0개의 댓글