2017-01-22 53 views
1

我正在使用Siesta從我的服務器獲取資源。我正在按照用戶指南配置一個轉換器,以自動將JSON字符串轉換爲Realm對象。從基於Siesta實體的JSON初始化Realm對象失敗

它適用於單個對象,但不知何故,這些對象的數組會失敗。

這裏是我的精簡型號:

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

而午睡變壓器,作爲例子,在我Service子類:

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

我設法讓它工作,沒有完全理解爲什麼。但是變壓器實際上是錯誤的,這不是一個Realm問題。現在,午睡變壓器看起來是這樣的:

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

我基本上去掉了JSON初始化。