2017-05-25 65 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) 
      } 

     } 
    } 

此时我可以在主线程中使用该对象。问题是当我必须保存另一个在此之后提取的对象时,并且需要先前保存的对象作为属性(关系)。我收到“无法从其他领域添加对象”错误。

这是使用先前保存的对象作为另一个属性的好方法吗?

回答