Project/HiddenGem
🔨 Raw value for enum case must be a literal 문제 해결!
밤새는 탐험가89
2025. 6. 3. 09:32
❗️문제 원인
enum SheetPosition: CGFloat, CaseIterable {
case min = 150
case mid = UIScreen.main.bounds.height * 0.4 // ❌ 이 줄
case max = UIScreen.main.bounds.height * 0.85 // ❌ 이 줄
}
❗️ 에러 메시지:
Raw value for enum case must be a literal
→ enum의 raw value는 상수 리터럴만 가능해.
UIScreen.main.bounds.height는 런타임에 계산되는 값이라 불가능해.
✅ 해결 방법
런타임 계산이 필요한 값을 enum 안에서 computed property로 처리하는 구조로 변경
enum SheetPosition: CaseIterable {
case min
case mid
case max
var height: CGFloat {
switch self {
case .min:
return 150
case .mid:
return UIScreen.main.bounds.height * 0.4
case .max:
return UIScreen.main.bounds.height * 0.85
}
}
}