领域:推动RLMObjects解析为PFObject,映射问题与RLMArray类型(关系)

时间:2015-02-16 05:08:01

标签: ios parse-platform realm pfobject

我正在使用https://github.com/newlix/PRSync/RLMObjects同步到Parse后端,反之亦然。我们说我需要推送RLMObject,我使用PRSync.swift中的以下函数。

public func pushObjectEventually<T:RLMObject where T:Syncable>(obj:T) {
  let pfo = PFObject(className: Constants.SaveActionClassName)
  pfo["parseClassName"] = T.className()
  for prop in properties(T.self) {
    if prop != "objectId" {
      pfo[prop] = obj[prop]
    }
  }
  pfo["timestamp"] = NSDate().timeIntervalSince1970
  pfo.saveEventually { success, error in
    if error != nil {
      println(error.localizedDescription)
    }
  }

如果我的RLMObject与另一个对象没有多少关系(即不包含和RLMArray类型),一切都运行良好。但是,对于RLMObjects类型RLMArray(例如,客户与Entry有很多关系),函数崩溃 -

 'PFObject values may not have class: RLMArray' 

来自Realm的人可以告诉我在RLMArray Entry中映射包含Client个对象(有多对多关系)的RLMObject条目的最佳方法我想将Client对象转换为PFObject并将其保存到Parse后端?对不起,但我没有找到很多文献正确解释这一点。

 class Client: RLMObject, Syncable {

    dynamic var objectId:String = ""
    dynamic var identifier:String = NSUUID().UUIDString
    dynamic var timestamp:Double = NSDate().timeIntervalSince1970
    dynamic var address = Address()
    dynamic var notes: String = ""
    dynamic var phone: String = ""
    dynamic var fax: String = ""
    dynamic var email: String = ""
    dynamic var website: String = ""
    dynamic var entries = RLMArray (objectClassName: Entry.className())

    override class func primaryKey() -> String! {
        return "identifier"
    }
}

0 个答案:

没有答案