我正在使用 Realm,并且有一个扩展
,用于将我的 Realm 模型转换为 Dictionary
,但我不知道如何转换我的所有 Realm 模型立刻。我想知道如何一次在一处转换所有 Realm 对象,以便我可以将该字典发送到 API。
这是我的 Realm 对象模型和我使用的扩展:
class OrderItemList: Object {
dynamic var dateCreated = NSDate()
let orderItems = List<OrderItem>()
}
class OrderItem: Object {
dynamic var name = " "
dynamic var amount = 0
dynamic var internalUnique = Int()
dynamic var isCompleted = false
}
扩展名:
extension Object {
func toDictionary() -> NSDictionary {
let properties = self.objectSchema.properties.map { $0.name }
let dictionary = self.dictionaryWithValuesForKeys(properties)
let mutabledic = NSMutableDictionary()
mutabledic.setValuesForKeysWithDictionary(dictionary)
for prop in self.objectSchema.properties as [Property]! {
// find lists
if let nestedObject = self[prop.name] as? Object {
mutabledic.setValue(nestedObject.toDictionary(), forKey: prop.name)
} else if let nestedListObject = self[prop.name] as? ListBase {
var objects = [AnyObject]()
for index in 0..<nestedListObject._rlmArray.count {
let object = nestedListObject._rlmArray[index] as AnyObject
objects.append(object.toDictionary())
}
mutabledic.setObject(objects, forKey: prop.name)
}
}
return mutabledic
}
}
最佳答案
不幸的是,没有什么 Elixir 可以将一批 Realm 对象转换为字典。您需要查询所需的对象,然后循环遍历每个对象以生成其序列化版本。
let realm = try! Realm()
var objectDictionaries = [NSDictionary]()
let allObjects = realm.objects(OrderItemList.self)
for object in allObjects {
let dictionary = object.toDictionary()
objectDictionaries.append(dictionary)
}
我希望回答了您的问题!
关于ios - 一次性将所有 Realm 对象转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40217022/