CKQuery 的 distanceToLocation 上没有 NSSortDescriptor?
Posted
技术标签:
【中文标题】CKQuery 的 distanceToLocation 上没有 NSSortDescriptor?【英文标题】:No NSSortDescriptor on distanceToLocation for CKQuery? 【发布时间】:2014-06-23 07:00:05 【问题描述】:使用 CloudKit CKQuery,您可以过滤距离(参见示例)。但是你怎么能按距离排序呢?像位置 ASC。位置上的排序描述符返回错误:query.sortDescriptors = [NSSortDescriptor(key: "distanceToLocation", ascending: true)]
:
static func getNearbySpots(location : CLLocation, completionHandler: (spots : CKRecord[]) -> Void)
let predicate = NSPredicate(format: "distanceToLocation:fromLocation:(location, %@) < 10000", location)
let 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)
【问题讨论】:
【参考方案1】:好的,找到了。有一个 CKLocationSortDescriptor,您可以在其中指定位置。
query.sortDescriptors = [CKLocationSortDescriptor(key: "location", relativeLocation: location)]
【讨论】:
以上是关于CKQuery 的 distanceToLocation 上没有 NSSortDescriptor?的主要内容,如果未能解决你的问题,请参考以下文章
CKQuery 的 distanceToLocation 上没有 NSSortDescriptor?
我可以从 CloudKit 接收对应于 CKQuery 的记录计数吗?