swift - Realm 对象上的索引是属性的复合索引或每个属性的不同索引

标签 swift realm

我使用“RealmSwift”在我的应用程序中创建 Realm 数据库。考虑我使用的“Object”的子类“ClassA”。 'ClassA' 及其属性可以简单描述如下(为简洁起见,省略实际代码):

ClassA: Object
-prop1
-prop2
-prop3
-prop4
-prop5
-prop6

我想要在“ClassA”上有两个索引。具体来说,我希望每个索引都是复合索引。我们将这两个索引称为“Index1”和“Index2”。我所说的复合是指一个索引可以有多个属性。因此,让我们定义两个索引如下:

Index1: prop1, prop2, prop6
Index2: prop3, prop4, prop5

我需要这些复合索引,以便更快地获取,以防我有这些特定属性的值。这对于我的申请至关重要。

使用“RealmSwift”在真实对象上提供索引是通过返回一个包含我们想要索引的属性名称的字符串数组来覆盖 Object.indexedProperties() 来完成的。

我想知道这是否会为每个属性创建单独的索引,或者为所有属性创建单个复合索引。

最佳答案

据我了解,文档Object.indexedProperties()将为您返回的每个属性创建一个索引,但没有复合索引。

为了解决这个问题,您可以在对象上创建新属性,这些属性组合了您想要用于复合索引的属性。

示例: 通过将 prop1prop2prop6 连接到一个字符串来创建一个新属性 indexProp126(仅作为示例,有可能是更有效的方法,例如散列等,具体取决于这些属性的类型和内容),然后使用它作为索引。

关于swift - Realm 对象上的索引是属性的复合索引或每个属性的不同索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54001862/

相关文章:

swift - 当 UIView 完全加载时如何收到通知

ios - 如何触发 scrollViewWillEndDragging 事件?

android - Realm 安卓 : get item count during migration

swift - 在 swift 中使用循环从编号变量中提取数据

ios - Realm Object 子类的实例在初始化时为 null

ios - 无法从另一个线程中删除 Realm 数据库对象(即使在搜索之后)

iOS Swift - 比较 NSDate 是否在现在和 x 天之间的最佳方法

javascript - 如何在WKWebView中调用带参数/不带参数的JavaScript函数?

ios - 在另一个 View Controller 中引用 IBOutlet

ios - Realm swift : All records between specific time