如何避免REALM数据库中列的重复条目?

时间:2018-03-26 09:08:20

标签: swift realm

我们可以避免REALM数据库中列的重复条目吗? 例如。我有条目4 4 4 4 4 4 3 3 3 3 4 5 5 5 2 2 2 2 4 3 3 3 3 2 2 6 6 6

我想只显示2 3 4 5 6。

3 个答案:

答案 0 :(得分:0)

正如@Ahmad F所说,在存储之后或之前指定是否要这样做。

如果您想在存储后过滤它们,可以使用以下内容:

return realm.objects(YourObject.self).value(forKeyPath: "@distinctUnionOfObjects.entryKey")

答案 1 :(得分:0)

如果使用领域版本3.10,则可以使用

Results..distinct(by: )  

如果使用旧版本 - 在Realm 3.10之前试试这个

func uniq<S : Sequence, T : Hashable>(source: S) -> [T] where S.Iterator.Element == T {
        var buffer = [T]()
        var added = Set<T>()
        for elem in source {
            if !added.contains(elem) {
                buffer.append(elem)
                added.insert(elem)
             }
        }
        return buffer
    }

使用func

  uniq(source: realm.objects(Object.self))

答案 2 :(得分:0)

嗯,我认为您应该在类定义中添加主键。 它可以帮助您避免重复的项目。