我正在尝试在包含LAT和LNG的realm obj上实现过滤。过滤器将获取当前位置和SORT数据源以将最接近的obj呈现给最少的obj。我试图用GeoQueries解决这个问题! pod,但它不断返回错误:
'Expected object of type string for property 'lat' on object of type 'E21', but received: 53.48708'
我的代码:
var datasourceE21Distance:Results<E21>!
func loadDistanceDb() {
do{
let tempLat = Double(LocationManager.sharedInstance.latitude)
let tampLng = Double(LocationManager.sharedInstance.longtitude)
let realm = try Realm()
datasourceE21Distance = realm.findInRegion(E21.self, region: mapView.region)
print(datasourceE21Distance)
} catch let error as NSError {
print(error)
}
}
答案 0 :(得分:1)
GeoQueries预计地理坐标组件的属性默认名为lat
和lng
,类型为Double
或Float
。
从错误消息中看来,您的属性似乎属于String
类型。 Realm使用数字比较无法查询这些内容。
如果为属性使用其他名称,则必须通过传递给库定义的方法的可选参数指定这些名称。
realm.findInRegion(E21.self, region: mapView.region
latitudeKey: "latitude",
longitudeKey: "longitude"
)