gpt4 book ai didi

Swift REALM - 按距离排序,过滤并仅存储唯一值

转载 作者:可可西里 更新时间:2023-11-01 02:16:57 24 4
gpt4 key购买 nike

您好,我正在制作一款可以向我展示有趣地点的应用。它以半径显示位置。我正在使用 REALM 来存储值。但是 Realm 不知道如何制作唯一值。我将其用于唯一行。

let result:[String] = realm.objects(E21).sorted("name").uniqueValue("Id_prov", type: String.self)

这用于在我周围的区域中查找东西

var datasourceE21Distance:Results<E21> = realm.findInRegion(E21.self, region: curentRegion).filter(tempRequest)

但我不知道如何将这些东西组合成一个,然后将它从对我来说最接近的一个到最远的排序。

我很乐意在这里提供任何帮助。

编辑我正在使用找到的这两个扩展:

func findInRegion<T: Object>(type: T.Type, region: MKCoordinateRegion, latitudeKey: String = "lat", longitudeKey: String = "lng") -> Results<T> {
// Query
return self
.objects(type)
.filterGeoBox(region.geoBox, latitudeKey: latitudeKey, longitudeKey: longitudeKey)

}

func uniqueValue<U : Equatable>(paramKey: String, type: U.Type)->[U]{
var uniqueValues : [U] = [U]()
for obj in self {

if let val = obj.valueForKeyPath(paramKey) {

if (!uniqueValues.contains(val as! U)) {
uniqueValues.append(val as! U)
}
}
}
return uniqueValues
}

最佳答案

RealmGeoQueries ,您用于通过边界框过滤实体的库支持通过 sortByDistance 按距离对对象进行排序。这将返回一个数组,因为此操作必须在具有缓存距离的内存中完成。

您需要确保您的 uniqueValue 方法是在 Array 的扩展中定义的。

关于Swift REALM - 按距离排序,过滤并仅存储唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134078/

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