2017-01-22 3 views
1

Siesta을 사용하여 서버에서 리소스를 가져옵니다. 그리고 JSON 문자열을 Realm 객체로 자동 변환하기 위해 트랜스포머를 구성하는 사용자 가이드를 따르고 있습니다.Siesta Entity 기반의 JSON에서 Realm 객체를 초기화하지 못했습니다.

단일 객체에서는 작동하지만 어떻게 든 이러한 객체의 배열에서는 실패합니다. 제 Service 서브 클래스에서, 예와 같이

public class ObservingSite: Object { 
    dynamic var uuid: String = "" 
    dynamic var name: String = "" 
} 

그리고 낮잠 트랜스포머 :

여기에 내 박리 다운 모델

self.configureTransformer("/\(self.APIVersion)/observingsites/") { 
     JSON($0.content as AnyObject).arrayValue.map { ObservingSite(value: $0) } 
    } 

JSONSwiftyJSON 의해 정의 된 데이터 타입 인.

는 그리고 미친 오류 메시지가 내가 얻을 :

2017-01-22 20:04:00.848504 Arcsecond Demo macOS[25453:8681143] [General] An uncaught exception was raised 

2017-01-22 20:04:00.848592 Arcsecond Demo macOS[25453:8681143]  [General] Invalid value '{ 
    "name" : "Adelaide Observatory", 
    "uuid" : "99b98d50-d831-48c2-89b3-2ff6e4c9f4aa" 
}' to initialize object of type 'ObservingSite': missing key 'uuid' 
2017-01-22 20:04:00.849000 Arcsecond Demo macOS[25453:8681143] [General] (
    0 CoreFoundation      0x00007fff7fa49e7b __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x00007fff94634cad objc_exception_throw + 48 
    2 Realm        0x000000010040c3f3 RLMValidatedValueForProperty + 282 
    3 Realm        0x000000010040b863 -[RLMObjectBase initWithValue:schema:] + 1105 
    4 RealmSwift       0x00000001002aa5da _TFC10RealmSwift6ObjectcfT5valueP__S0_ + 202 
    5 Arcsecond       0x000000010024fbfb _TFC9Arcsecond13ObservingSitecfT5valueP__S0_ + 203 
    6 Arcsecond       0x000000010024fc84 _TFC9Arcsecond13ObservingSiteCfT5valueP__S0_ + 52 
    7 Arcsecond       0x0000000100253a1c 

그러나 망할 uuid 키가 여기에있다!? 내가 누락 된 것? 어떤 도움을 주셔서 감사합니다.

답변

2

이유를 완전히 이해하지 않고도 작동하도록 만들었습니다. 그러나 변압기는 실제로 잘못되었으며, 이것은 영역 문제가 아닙니다. 이제, 낮잠 변압기는 다음과 같습니다

self.configureTransformer("/\(self.APIVersion)/observingsites/") { 
     ($0.content as [AnyObject]).map { ObservingSite(value: $0) } 
    } 

나는 기본적으로 JSON 초기화를 제거했습니다.