cloudkit - CKQuery 的 distanceToLocation 上没有 NSSortDescriptor?

标签 cloudkit ckquery

使用 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)
    }

最佳答案

好的,找到了。有一个 CKLocationSortDescriptor,您可以在其中指定位置。

 query.sortDescriptors = [CKLocationSortDescriptor(key: "location", relativeLocation: location)]

关于cloudkit - CKQuery 的 distanceToLocation 上没有 NSSortDescriptor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24360118/

相关文章:

swift - 使用 Cloudkit Assets 作为 UIimage

ios - CKQuery存在时CKQueryOperation存在的原因

ios - 如果用户已创建帐户,则绕过登录

ios - 如何查询 CloudKit 中的 recordID IN [CKRecordID]

ios - CKModifyRecordsOperation 不删除记录

ios - 如何接收有关与我共享的记录更改的 cloudkit 通知?

ios - 限制 CloudKit 中返回的结果数量

ios - 如何以编程方式在云工具包中标记可查询的记录类型

ios - TestFlight开发和生产

swift - 如何显示 CloudKit 中最接近今天日期的帖子?