gpt4 book ai didi

ios - Realm Swift 中的一对多关系如何?

转载 作者:行者123 更新时间:2023-12-01 17:16:50 25 4
gpt4 key购买 nike

我是 Realm Swift 的新手。我想在 Swift3.0 中实现一对多关系

我有文件夹列表,每个文件夹可能有子文件夹列表。所以我创建了两个 relam 文件,如下所示。

文件夹 Realm 类

 class FolderRealm: Object {

dynamic var folderName : String?
dynamic var createdDate : Date?
let subFolders = List<SubFolderRealm>()
}

子文件夹 Realm 类

 class SubFolderRealm: Object {

dynamic var subFolderName : String?
dynamic var createdDate : Date?

}

为了添加文件夹,我使用了以下代码行

let folder : FolderRealm  = FolderRealm()
folder.folderName = searchBarObj.text!
folder.createdDate = Date()
try! realm.write {
realm.add(folder)
}

我有疑问,如何将子文件夹数据添加到文件夹和子文件夹 Realm ?

最佳答案

首先,考虑仅使用一种 Folder 类型而不是两种,当所有数据都相同时,没有必要使用 Subfolder 对象。

class Folder : Object {
dynamic var folderName:String = ""
dynamic var createdDate:Date = Date()
}

其次,对于您的情况,您可能需要使用 LinkingObjects .

class Folder : Object {
dynamic var folderName:String = ""
dynamic var createdDate:Date = Date()
dynamic var parentFolder:Folder? = nil

let subfolders = LinkingObjects(fromType: Folder.self, property: "parentFolder")
}

然后你会像这样创建对象:

let parentFolder = Folder()
let subfolder1 = Folder()
let subfolder2 = Folder()

parentFolder.folderName = "whatever"

subfolder1.parentFolder = parentFolder
subfolder2.parentFolder = parentFolder

let realm = try! Realm()
try! realm.write { realm.add([parentFolder, subfolder1, subfolder2])}

关于ios - Realm Swift 中的一对多关系如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43063852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com