繁体   English   中英

在iOS Swift中解析查询

[英]Parse query in iOS swift

在此处输入图片说明 无论对象ID是什么,我都希望检索列中的所有数据。 我有10个用户名及其所有游戏得分。 我想获取所有用户名和相应的游戏分数。我应该查询什么? 我也将用户名存储在类中。 TIA :)

var messages = [String]()
var usernames = [String]()

override func viewDidLoad() {
    super.viewDidLoad()

    var query = PFQuery(className: "RescuePost")
    query.findObjectsInBackgroundWithBlock {
        (objects, error) -> Void in

        if error == nil {
            if let objects = objects {
                for object in objects {
                    self.messages.append(object["message"] as! String)
                    self.usernames.append(object["username"] as! String)
                }
            }
        }
    }
}

如果要下载所有这些信息,则需要在某处放置它,因此让我们使用struct创建一个数据结构

 struct myDataStructure {
        var username:String?
        var userId:String?
        var message:String?
        var Userlocation:PFGeoPoint?
    }

现在让我们创建array of that structarray of that struct

var arrayOfData = [myDataStructure]()

您的查询将如下所示:

 func queryData()
    {
       let query = PFQuery(className: "NameOfClassYouWantToQueryFrom")
        query.findObjectsInBackgroundWithBlock { (objects :[PFObject]?, error :NSError?) -> Void in
            if error == nil
            {
                if let objects = objects
                {
                    for eachSingleUser in objects
                    {
                        let username = eachSingleUser["username"] as! String
                        let userId = eachSingleUser["userId"] as! String
                        let message = eachSingleUser["message"] as? String
                        let userLocation = eachSingleUser["location"] as? PFGeoPoint

                          var singleData = myDataStructure()
                           singleData.username = username
                           singleData.userId = userId
                           singleData.message = message
                           singleData.Userlocation = userLocation

                           self.arrayOfData.append(singleData)    
                          //<----- Since you are using UITableView don't forget to reload data
                    }
                }
            }
        }
    }

一些解释:

findObjectsInBackgroundWithBlock方法是一种将所有数据或对象从解析返回到PFObjects数组中的方法。 因此,我们的工作是检查并提取这些数据以使用它:)

       let username = eachSingleUser["username"] as! String

在上面的这一行中, eachSingleUser是解析的许多对象之一,其中包含您的所有字段,例如用户名,userId,消息,因此,通过使用下标eachSingleUser[""]我们将能够访问所有这些字段。

最后:

   self.arrayOfData.append(singleData)  

在上面的这一行中,我们将每个对象保存到数组中。

您的所有数据都将被保存,并且可以在该阵列中进行访问。

在cellPathRowAtIndexPath()中

let data = arrayofData[indexPath.row]
 cell.textlabel.text = data.username
 cell.detailTextlabel.text = data.message

您想获取一个类的所有对象。 通过构造没有约束的基本查询 ,您可以轻松地做到这一点,这意味着您的查询将与所有记录匹配。

在表视图中,通常可以访问每个对象的值:

object.objectForKey("username")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM