Sunday, 15 February 2015

cloudkit - No NSSortDescriptor on distanceToLocation for CKQuery? -



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