[swift] Swift에서 ObjectMapper를 사용하여 객체의 속성에 기본값 설정하기

Objective-C에서도 자동 매핑을 제공하는 ObjectMapper는 Swift에서도 매우 유용하게 사용될 수 있습니다. ObjectMapper를 사용하면 JSON 데이터를 객체로 변환하거나, 객체를 JSON 데이터로 변환하는 작업을 간단하게 수행할 수 있습니다. 이번 블로그 포스트에서는 ObjectMapper를 사용하여 객체의 속성에 기본값을 설정하는 방법에 대해 알아보겠습니다.

ObjectMapper 소개

ObjectMapper는 JSON 데이터와 Swift 객체 간의 매핑을 쉽게 처리하기 위한 라이브러리입니다. ObjectMapper를 사용하면 JSON 데이터와 Swift 객체 간의 변환 작업을 수동으로 처리하는 것보다 간편하게 할 수 있습니다.

객체의 속성에 기본값 설정하기

Swift에서 ObjectMapper를 사용하여 객체의 속성에 기본값을 설정하는 방법은 매우 간단합니다. 기본값을 설정하려는 속성에 @objc dynamic var를 사용하고, @objc dynamic var의 기본값을 설정하면 됩니다.

import ObjectMapper

class Person: Mappable {

    @objc dynamic var name: String = "John"
    @objc dynamic var age: Int = 30
    @objc dynamic var email: String? = nil

    required init?(map: Map) {}

    func mapping(map: Map) {
        name <- map["name"]
        age <- map["age"]
        email <- map["email"]
    }
}

위의 예시에서는 Person이라는 클래스를 정의하였습니다. 이 클래스는 ObjectMapper의 Mappable 프로토콜을 채택하고 있습니다. @objc dynamic var 를 사용하여 속성을 정의하면서 기본값도 동시에 설정했습니다. name 속성은 “John”으로, age 속성은 30으로, email 속성은 nil로 기본값을 설정했습니다.

만약 JSON 데이터가 name이나 age 같은 속성을 포함하고 있지 않은 경우에는 기본값이 사용됩니다.

let json = """
{
    "name": "Mike",
    "age": 25
}
""" 

if let person = Mapper<Person>().map(JSONString: json) {
    print(person.name) // "Mike"
    print(person.age) // 25
    print(person.email) // nil
}

위의 예시에서는 JSON 데이터를 이용하여 Person 객체를 생성하고, 생성된 객체의 속성에 접근했습니다. JSON 데이터에는 "name""age" 속성만 포함되어있고, "email" 속성은 포함되어 있지 않습니다. 그런데도 기본값이 잘 사용되어 "email" 속성은 nil로 출력됩니다.

이와 같이 ObjectMapper를 사용하여 객체의 기본값을 설정할 수 있습니다. 이를 이용하면 객체에서 값이 비어있는 속성에 대해 개별적으로 처리하는 불편함을 줄일 수 있습니다.

결론

Swift에서 ObjectMapper를 사용하여 객체의 속성에 기본값을 설정하는 방법에 대해 알아보았습니다. ObjectMapper를 사용하면 JSON 데이터와 Swift 객체 간의 변환 작업을 간편하게 처리할 수 있습니다. 속성에 기본값을 설정하면 값이 비어있을 때 기본값이 사용되므로, 불필요한 로직을 작성하지 않아도 됩니다. ObjectMapper를 사용하여 Swift 개발을 보다 효율적으로 진행할 수 있습니다.

참고 자료