[英]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 struct
的array 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.