Swift enum 활용하기
Swift를 사용한다면 Enum이 정말 활용도가 높다는 걸 알 수 있다.
나 같은 경우에 사용자의 기기 정보들을 가지고 있어야하는 객체가 필요했다. 그리고 서버에 전송할 수 있어야 했다. 그래서 enum을 활용하여 나는 기기 정보들을 저장할 변수를 만들기로 했다.
class DeviceService {
static let shared = DeviceService()
}
위와 같은 클래스가 있다고 생각해보자. 일단 데이터를 항상 가지고 있어야할테니 싱글톤 객체를 정의한 뒤 클래스 내부 변수를 만들면 된다.
이제 기기 정보를 담을 Enum을 정의하자.
enum DeviceInformation {
/// 기기 고유번호
case uuid
/// 기기 OS 버전
case osVersion
/// 기기 모델명
case name
/// 앱 버전
case appVersion
/// 기기 OS
case os
/// FCM 토큰
case token
}
이제 DeviceInformation
에 접근하면 되는데.. 아직 접근해도 제대로 활용할 수 없다.
하나만 더 추가해보자. Swift의 Enum은 재밌게도 변수도 가질 수 있다.
var key: String {
switch self {
case .uuid: return "user_device_uuid"
case .osVersion: return "user_device_os_version"
case .name: return "user_device_info"
case .appVersion: return "user_device_app_version"
case .os: return "user_device_type"
case .token: return "user_device_push_token"
}
}
위 처럼 더 추가해주면 DeviceInformation.uuid.key
를 접근할 시 user_device_uuid
값이 반환된다! 위를 이용해서 POST할때 사용될 Key를 정의할 수도 있으며 다양한 방법으로 활용할 수도 있다. 예를 들면 API Endpoint 를 정의한다던가..?
Swift를 사용한 지 많은 시간이 흐른 것도 아니지만 배우면 배울수록 정말 매력있는 언어라고 생각된다. 끗.
최신 댓글