Database 领域可以处理对象的继承吗?
我正在考虑使用领域作为私有开发的数据库。 所以我想知道Realm是否可以像iOS的CoreData一样处理对象继承 CoreData支持对象的继承,因此很容易创建类似文件系统的结构 比如说,Database 领域可以处理对象的继承吗?,database,realm,Database,Realm,我正在考虑使用领域作为私有开发的数据库。 所以我想知道Realm是否可以像iOS的CoreData一样处理对象继承 CoreData支持对象的继承,因此很容易创建类似文件系统的结构 比如说, FileSystemObject:对象 名称:String 父:文件夹 文件夹:FileSystemObject 子项:[FileSystemObject] 文件:FileSystemObject 内容:Blob 这种结构很容易在CoreData中创建和处理。 Realm是否可以本地轻松创建
- FileSystemObject:对象
- 名称:String
- 父:文件夹
- 文件夹:FileSystemObject
- 子项:[FileSystemObject]
- 文件:FileSystemObject
- 内容:Blob
但我主要关心的是减少结构设计和编码量,所以我想知道Realm可以以本机方式处理此问题…是的,但仅限于代码共享,而不是多态性。Realm认为每个子类都是完全不相关的类型,这意味着在您的示例中,
列表
只能存储实际的文件系统对象
对象,而不能存储文件夹
或文件
对象,这可能不是您想要的。领域中的类层次结构必须如下所示:
class FileSystemObject : Object {
dynamic var name: String
dynamic var parent: Folder?
dynamic var kind: Int
dynamic var file: File?
dynamic var folder: Folder?
}
enum FileSystemObjectKind: Int {
case File, Folder
}
class File : Object {
dynamic var content: NSData
}
class Folder : Object {
let children = List<FileSystemObject>()
}
类文件系统对象:对象{
动态变量名:String
动态变量父文件夹?
动态变量种类:Int
动态变量文件:文件?
动态变量文件夹:文件夹?
}
枚举文件系统对象种类:Int{
案例文件、文件夹
}
类文件:对象{
动态var内容:NSData
}
类文件夹:对象{
let children=List()
}