在swift中从findObjectsInBackgroundWithBlock获取数据

Jas*_*son 3 parse-platform swift

我正在使用Parse从数据库中获取数据.当调用块 - findObjectsInBackgroundWithBlock时,将传递一个数组.因为我只接收一行数据,所有数据都出现在数组的一个[0]部分.那么如何从该数组中获取所有位?

这是我使用的一些代码:

var MainPicture = PFQuery(className: "Staff")
        MainPicture.whereKey("Position", equalTo: "Sales Manager")
        MainPicture.findObjectsInBackgroundWithBlock ({(objects:[AnyObject]!, error: NSError!) in
            if(error == nil){
                for object in objects {

                }
                self.getMainImageData(objects as [PFObject])


            }
            else{
                println("Error in retrieving \(error)")
            }

        })
Run Code Online (Sandbox Code Playgroud)

所以对象中的对象在哪里,它给了我一个包含所有内容的数组.那么如何提取该数组以获得名字,昨晚,位置,员工ID?

谢谢

ric*_*rbh 8

您需要将您转换[AnyObject]为a [PFObject]然后您可以使用标准Parse方法来获取数据.

if let staffObjects = objects as? [PFObject] {
  for staff in staffObjects {
    // Use staff as a standard PFObject now. e.g.
    let firstName = staff.objectForKey("first_name")
  }
}
Run Code Online (Sandbox Code Playgroud)

  • `findObjectsInBackgroundWithBlock`的方法签名返回一个`PFArrayResultBlock`,它有一个签名(在Swift中)`([AnyObject]?,NSError?)`.这表明对象(`[AnyObject]`)可能为零.强行转换为"[PFObject]"可能不是一个好主意.它应该被视为可选的.做一些像'MainPicture.findObjectsInBackgroundWithBlock({(对象:[PFObject]?...`)的东西更有意义.那样,你仍然可以检查它是否为零,如果不是,你就可以放心了包含`PFObject`s.它只是移动了铸件,因为仍需要零检查. (2认同)