根据与Float的差异对Parse Query进行排序

时间:2015-05-06 17:38:55

标签: ios sorting parse-platform pfquery

我想根据字段temperature到我的变量referenceTemp的标量距离对我的Parse查询结果进行排序

我尝试了以下内容,这当然不起作用,但它说明了我的意图

var referenceTemp = 47.89
var query = PFQuery(className: "Temperatures")
query.orderByAscending("abs(temperature - referenceTemp)")

我该怎么办? 谢谢!

1 个答案:

答案 0 :(得分:1)

您无法在数据库级别执行此操作...但您可以使用两个查询执行此操作:

var referenceTemp = 47.89
var query = PFQuery(className: "Temperatures")
query.greaterThan(referenceTemp);
query.orderByAscending();
query.findObjectsInBackgroundWithBlock {
  (objects: [AnyObject]?, error: NSError?) -> Void in

  if error == nil {
    // The find succeeded.
    println("Successfully retrieved \(objects!.count) scores.")
    // Do something with the found objects
    if let objects = objects as? [PFObject] {
      for object in objects {
        //Get the scalar distance for each, store
      }
    }
  } else {
    // Log details of the failure
    println("Error: \(error!) \(error!.userInfo!)")
  }
}

query.lessThan(referenceTemp);
query.orderByDescending();
query.findObjectsInBackgroundWithBlock...

一旦你拥有最接近的上方和下方,以及它们的标量距离,你可以使用带有标量距离和对象值的键的散列或NSDictionary。根据需要订购,您只需要2个查询。

相关问题