2016-07-21 5 views
2

JSON 문자열에서 오는 배열을 저장하려고하면 오류가 발생합니다. RLMArray을 사용하려고 시도했지만 성공하지 못했습니다.Realm Swift 및 ObjectMapper를 사용하여 배열을 유지하는 방법은 무엇입니까?

I 나타나는 오류는 다음과 같습니다

'RLMException'이유 : '속성'페이지는 지원 RLMArray 객체 유형이 아닌 RLMArray < (널)> ''타입이다 '.

내 모델 클래스 :

public class Project: Object, Mappable { 

    dynamic var id = 0 
    dynamic var user: User! 
    dynamic var page: RLMArray! 
    dynamic var error_message: String! = "" 
    dynamic var status: String! = "" 

    override public static func primaryKey() -> String? { 
     return "id" 
    } 

    required convenience public init?(_ map: Map) { 
     self.init() 
     mapping(map) 
    } 

    public func mapping(map: Map) { 
     user <- map["user"] 
     page <- map["page"] 
     error_message <- map["error_message"] 
     status <- map["status"] 

    } 
} 

JSON 파일 :

let parameters = [ 
       "user": [ 
        "username": "Marcus", 
        "password": "123asd" 
       ], 
       "page": [ 
        "home": [ 
           [ 
           "kind": "navigation", 
           "title": "suite", 
           "image": "ic_suite", 
           "backgroundImage": "ic_background1" 
           ], 
           [ 
            "kind": "navigation", 
            "title": "jardim", 
            "image": "ic_jardim", 
            "backgroundImage": "ic_background2" 
           ] 
          ], 
        "suite": [ 
           [ 
           "kind": "button", 
           "title": "My Master Suite", 
           "textColor": "0x000000", 
           "textSize": "16" 
           ] 
        ] 
       ], 
       "status": "success", 
       "error_message": "" 
     ] 
self.project = Mapper<Project>().map(parameters) 

답변

1

클래스가 Object, 영역 스위프트의 기본 클래스에서 상속하지만 RLMArray하는 영역 목표-C를 사용하려고 유형을 인터페이스에 포함합니다. 이 방법으로 Realm Swift와 Objective-C 영역을 혼합 할 수는 없습니다. Realm Swift를 사용하는 경우 배열 속성에 List<T>을 사용해야합니다.

+0

나는 목록 을 사용하려고하지만 가지고 : 그 유형이 목표 - C – Marckaraujo

+0

으로 표현 될 수 없기 때문에 재산이''속성으로 선언해야합니다 목록은''재산 = 목록 를() 할 동적 표시 할 수 없습니다. 정보는 [Realm 's property declaration cheatsheet] (https://realm.io/docs/swift/latest/#cheatsheet)를 참조하십시오. – bdash

+0

감사합니다 @bdash,하지만 당신이 본다면 목록 ()을 사용할 수 없습니다. 내 arrayList에는 여러 유형의 객체가 있습니다. – Marckaraujo