[swift] ObjectMapper를 사용하여 Swift 객체에 NSURL을 매핑하는 방법은 무엇인가요?
-
ObjectMapper 설치하기: ObjectMapper를 사용하기 위해 먼저 해당 라이브러리를 프로젝트에 설치해야합니다. 이를 위해 CocoaPods를 사용한다면, Podfile에 다음과 같이 추가합니다:
pod 'ObjectMapper'
그리고 터미널에서
pod install
명령어를 실행하여 라이브러리를 설치합니다. -
매핑할 Swift 객체 준비하기: ObjectMapper를 사용하여 NSURL을 매핑할 Swift 객체를 정의합니다. 예를 들어, 다음과 같은 User 클래스를 가정해봅시다:
import ObjectMapper class User: Mappable { var name: String? var profileURL: NSURL? required init?(map: Map) {} func mapping(map: Map) { name <- map["name"] profileURL <- (map["profileURL"], URLTransform()) } }
-
NSURL을 매핑할 Transform 생성하기: NSURL을 매핑하기 위해 ObjectMapper는 URLTransform을 사용합니다. 이를 위해 다음과 같이 URLTransform 확장을 생성합니다:
import ObjectMapper import Foundation public class URLTransform: TransformType { public typealias Object = NSURL public typealias JSON = String public init() {} public func transformFromJSON(_ value: Any?) -> NSURL? { if let urlString = value as? String { return NSURL(string: urlString) } return nil } public func transformToJSON(_ value: NSURL?) -> String? { if let url = value { return url.absoluteString } return nil } }
-
NSURL 매핑 실행하기: 이제 ObjectMapper를 사용하여 NSURL을 매핑할 수 있습니다. 예를 들어:
import ObjectMapper let userJson = "{\"name\":\"John Doe\",\"profileURL\":\"https://example.com/profile\"}" if let user = User(JSONString: userJson) { print(user.name) // 출력: John Doe print(user.profileURL) // 출력: Optional(https://example.com/profile) }
이렇게 해서 ObjectMapper를 사용하여 Swift 객체에 NSURL을 매핑할 수 있습니다.
참고 자료:
- ObjectMapper GitHub 저장소: https://github.com/tristanhimmelman/ObjectMapper