swift - 在 Swift 中将数组保存到 Realm ?

标签 swift realm

是否可以将对象数组保存到Realm?每当我对数组进行更改时,它都应该保存到 Realm。

我当前的解决方案是使用for 循环 逐个保存对象。对于追加/修改对象,调用 save() 将完成这项工作,但当我从中删除对象时则不会。

class CustomObject: Object {
    dynamic var name = ""
    dynamic var id = 0

    override static func primaryKey() -> String? {
    return "id"
    }
}

struct RealmDatabase {

    static var sharedInstance = RealmDatabase()

    var realm: Realm!

    let object0 = CustomObject()
    let object1 = CustomObject()

    var array = [object0, object1]

    init() {
        self.realm = try! Realm()
    }

    func save() {

        for object in self.array {
            try! self.realm.write {
                self.realm.add(object, update: true)
            }
        }
    }

}

最佳答案

要保存对象列表,您必须使用 Realm List,而不是 Swift 数组。

let objects = List<CustomObject>()

然后,您可以添加元素:

objects.append(object1)

看看to many relationshipsCollections the official docs 的部分.

关于swift - 在 Swift 中将数组保存到 Realm ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327569/

相关文章:

ios - 如何使用 Swift 3 获取扫描的条形码照片?

swift - 窗口无法快速添加 subview

android - 插入现有记录时 Android Realm copyToRealmOrUpdate 出错

arrays - 不能在属性初始值设定项中使用实例成员 'country';属性初始值设定项在 'self' 可用之前运行

iOS - 使用 Swift 在每个表格 View 单元格中获取 JSON feed

ios - 如何将 swift 对象传递给 javascript (WKWebView/swift)

xamarin - .Net Standard 2.0 与 Realm 3.4.0 'could not resolve reference' Xamarin 表单

javascript - RealmJS - 显示代理对象而不是对象列表

java - 发现多个文件具有独立于操作系统的路径 'lib/arm64-v8a/librealm-jni.so'

ios - 我可以从 Enum 数据类型创建 Realm 对象的属性吗?