CKQuery的distanceToLocation上没有NSSortDescriptor?

时间:2014-06-23 07:00:05

标签: 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)
    }

1 个答案:

答案 0 :(得分:6)

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

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