2017-05-25 71 views
1

我在使用Realm時遇到了一些問題。基本上,我使用Alamofire從背景中的API中獲取對象,將它們映射到ObjectMap Objectper,並在後臺保存Realm,然後返回主線程以顯示它們。我知道境界對象是線程限制,如果他們管理,但我仍然感到困惑如何使用他們,他們得救後:Swift Realm將預取對象保存到新對象中

1)獲取的數據,映射它,並將其保存:

network.makeCallWith(urlRequest: objCreation, objectType: objType.self) { (response) in...... 

//..... 
DispatchQueue.global(qos: .background).async { 

     do { 

      let realm = try Realm() 

      try realm.write { 

       for obj in objects { //obj in response 

        realm.add(obj,update: true) 
       } 

      } 
     } catch let error as NSError { 

      print(error) 
     } 

     DispatchQueue.main.async { 

      do { 

       let realm = try Realm() 

       let objects = realm.objects(T) 

       completion(Result.success(Array(objects))) 

      } catch let error as NSError { 

       print(error) 
      } 

     } 
    } 

此時我可以在主線程中使用該對象。問題是當我必須保存另一個在此之後提取的對象時,並且需要先前保存的對象作爲屬性(關係)。我收到「無法從其他領域添加對象」錯誤。

這是使用先前保存的對象作爲另一個屬性的好方法嗎?

回答