这是使用RealmSwift实现树结构的最"通用"方式吗?

KrY*_*ger 2 realm swift

新手到领域,我想知道如何使用RealmSwift构建树结构...

我倾向于认为这是对文件系统文件夹创意的模仿,所以,

class Folder: Object {
    dynamic var record = false
    dynamic var uuid = ""
    dynamic var title = ""
    let members = List<Folder>()
}

class Root: Object {
    dynamic var uuid = ""
    dynamic var title = "/"
    let members = List<Folder>()
}
Run Code Online (Sandbox Code Playgroud)

我只有一个Root,然后会实现各种树行走,文件夹操作等等.如果Folder.record为false,则文件夹节点为"目录",如果为true,则文件夹节点为"file"

哦,RealmSwift的巫师,我是否正在使用RealmSwift构建树结构?

ast*_*ast 5

如果你想模拟一个包含文件和文件夹的文件系统,那么这样做可能会更简单:

class File: Object {
    dynamic var uuid  = ""
    dynamic var title = ""
}

class Folder: Object {
    dynamic var uuid  = ""
    dynamic var title = ""
    let files   = List<File>()
    let folders = List<Folder>()
}
Run Code Online (Sandbox Code Playgroud)

您可以使用第一个第一个Folder对象(可访问为realm.objects(Folder).first()),而不是显式的根类.

  • 所以我使用的结构与此非常相似,但是当我深入3-4级时,我的列表中出现<超出最大深度> ....我从JSON结构填充"树",它只有6级左右. (2认同)