cloudkit - No NSSortDescriptor on distanceToLocation for CKQuery? -
with cloudkit ckquery can filter on distance (see sample). how can sort on distance? location asc. sort descriptor on location returns error: query.sortdescriptors = [nssortdescriptor(key: "distancetolocation", ascending: true)] :
static func getnearbyspots(location : cllocation, completionhandler: (spots : ckrecord[]) -> void) { allow predicate = nspredicate(format: "distancetolocation:fromlocation:(location, %@) < 10000", location) allow queryoperation = ckqueryoperation(query: query) var results : ckrecord[] = [] queryoperation.recordfetchedblock = { results += $0 } queryoperation.querycompletionblock = { if $1 { nslog($1.description,[]) abort() } else { completionhandler(spots: results) } } self.publicdb().addoperation(queryoperation) }
ok, found it. there cklocationsortdescriptor can specify location.
query.sortdescriptors = [cklocationsortdescriptor(key: "location", relativelocation: location)] cloudkit ckquery
No comments:
Post a Comment