[swift] ObjectMapper를 사용하여 Swift 객체에 enum을 매핑하는 방법은 무엇인가요?

Swift에서 ObjectMapper는 JSON 데이터를 Swift 객체로 변환하는 라이브러리입니다. ObjectMapper를 사용하여 Swift 객체에 enum을 매핑하는 방법은 다음과 같습니다.

  1. Enum 정의하기

첫 번째로, 매핑할 enum을 정의해야 합니다. 예를 들어, JSON 데이터에서 “status”라는 키에 대응하는 값을 매핑하는 enum을 정의해보겠습니다.

enum Status: String {
    case active = "Active"
    case inactive = "Inactive"
}
  1. ObjectMapper 사용하기

다음으로, ObjectMapper를 사용하여 enum을 매핑할 수 있습니다. ObjectMapper는 Mappable 프로토콜을 구현한 객체에 대해 매핑 기능을 제공합니다.

import ObjectMapper

class User: Mappable {
    var name: String?
    var status: Status?

    required init?(map: Map) {}

    func mapping(map: Map) {
        name <- map["name"]
        status <- (map["status"], EnumTransform<Status>())
    }
}

위의 코드에서 Status enum을 매핑하기 위해 EnumTransform<Status>()를 사용하였습니다. status 변수의 매핑에 (map["status"], EnumTransform<Status>())를 사용하여 enum으로의 매핑을 처리합니다.

  1. JSON 데이터를 Swift 객체로 매핑하기

이제 ObjectMapper를 사용하여 JSON 데이터를 Swift 객체로 매핑할 수 있습니다. 다음은 ObjectMapper를 사용하여 JSON 데이터를 Swift 객체로 매핑하는 예제입니다.

let json = """
{
    "name": "John",
    "status": "Active"
}
"""
if let user = Mapper<User>().map(JSONString: json) {
    print(user.name) // "John"
    print(user.status) // Status.active
}

JSON 데이터에서 “status” 값인 “Active”이 매핑되면, user.statusStatus.active로 설정됩니다.

이처럼, ObjectMapper를 사용하여 Swift 객체에 enum을 매핑할 수 있습니다. ObjectMapper는 다양한 유형의 데이터를 Swift 객체로 변환하는데 유용한 라이브러리입니다.

더 자세한 내용은 ObjectMapper의 공식 문서를 참조해주세요. [^1^]