我正在使用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"
}
}