ios - 一次性将所有 Realm 对象转换为字典

标签 ios swift dictionary nsdictionary realm

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

相关文章:

javascript - Node.js 服务器的哪个 Websocket 库最适合 iOS 客户端?

ios - 如何使用 AVPlayerViewController 横向旋转屏幕?

ios - 点击注释时未调用委托(delegate)函数

python - 导入字典

python - 编写一个 for 循环来打印 1 个嵌套字典的键

ios - 无法从 Parse 服务器和 ionic 应用程序 (ios) 接收推送通知

swift - 当可选参数可以具有不同类型时,Swift 初始值设定项不明确

ios - 您好,我正在使用 swift,我正在尝试在选择 Collection View 单元格时更改 Collection View 单元格的标签

python - 将函数的输出返回到字典

ios - Apple 方法中隐式解包可选