基于数组获取解析数据

时间:2015-09-12 20:48:35

标签: arrays for-loop parse-platform tableview pfquery

我有一个PFQueryTableViewController。

我还有一个随机生成的数字数组,从1到Parse类计数。

在Parse中,类中的每个对象都被赋予一个数字(1,2,3等)

我想在Parse到表视图单元格中从此类中获取对象,顺序取决于数组的顺序。

例如,我的数组将是[3,2,5,1,4]

我想按顺序查询键“number”等于那些数字的位置..

到目前为止,我有这个:

// Define the query that will provide the data for the table view
override func queryForTable() -> PFQuery{

    var query = PFQuery(className: "Stores")

    for i in 1...10 {
    query.whereKey("number", equalTo: numArray[i])
    }

    return query
 }

//override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {

    var cell = tableView.dequeueReusableCellWithIdentifier("cell") as! ExploreCell!
    if cell == nil {
        cell = ExploreCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")

    }

但是,每当我运行时,它只会从1个对象中获取信息。我的表视图只有1个单元格可以抓取数据。

1 个答案:

答案 0 :(得分:0)

我想这是Swift Code(我实际上不知道Swift)。

无论如何,我没有看到需要(尝试)按照您想要的顺序查询对象。实际上使用query.whereKey次,您只需使用最后一次。

你应该做什么,实际上是查询对象然后对它们进行排序(除非你想要一个升序/降序)。

另外请记住,Parse Query是异步的,所以可能像你所做的那样构建函数将无法正常工作。

编辑:这是您可能想要使用的代码类型:

var query = PFQuery(className:"GameScore")
query.whereKey("playerName", equalTo:"Sean Plott")
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 {
        println(object.objectId)
      }
    } 
} else {
    // Log details of the failure
    println("Error: \(error!) \(error!.userInfo!)")
  }
}

objects变量是您要排序的数组。

Parse Documentation对我来说一直有用,可以更好地理解Parse