gpt4 book ai didi

ios - 查询解析表中的所有数据并放入数组中

转载 作者:行者123 更新时间:2023-11-30 13:55:56 25 4
gpt4 key购买 nike

我正在制作一个正在运行的应用程序,并且希望有一个 viewController,其中用户可以在字段中随机显示运行提示和事实。我想查询 objectIds 的解析,然后引用 id 并将标签分配给提示或事实。目前,我已将 Id 硬编码到应用程序中,但我希望该数组包含查询结果,代码如下:

func GetObjectID(){
ObjectIDs = ["id1","id2","id3","id4","id5","id6","id7","id8"]
RandomID = Int(arc4random_uniform(UInt32(ObjectIDs.count)))

}


func TheInfo(){
GetObjectID()

var query : PFQuery = PFQuery(className: "FactsandTips")
query.getObjectInBackgroundWithId(ObjectIDs[RandomID]){
(ObjectHolder : PFObject?, error: NSError?) -> Void in



if (error == nil) {

self.fact = ObjectHolder!.valueForKey("Fact") as? String

self.tips = ObjectHolder!.valueForKey("Tips") as? Array





if(self.tips.count > 0){

self.factLabel.text = self.fact

self.Button1.setTitle(self.tips[0], forState: UIControlState.Normal)

self.Button2.setTitle(self.tips[1], forState: UIControlState.Normal)

self.Button3.setTitle(self.tips[2], forState: UIControlState.Normal)

self.Button4.setTitle(self.tips[3], forState: UIControlState.Normal)

}



} else {

print("There is something wrong!")

}



}



}

我使用 swift、Xcode7 和 parse 作为我的后端

最佳答案

下面是我用来查询解析表、检索所有结果并将其全部添加到数组中的代码。然后我使用该数组作为 pickerView 的源。

    var query:PFQuery = PFQuery(className: "Drivers")
query.addAscendingOrder("Name")
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
if let objects = objects as? [PFObject] {
for object in objects {
self.astrDrivers.append(object["Name"]! as! String)
}
}
self.pkvDriverTrack.reloadAllComponents()
} else {
print("Error: \(error) \(error!.userInfo)")
}
}

请注意 self.astrDrivers.append(object["Name"]! as! String) 行。这会将每条记录的 Name 列添加到我的 self.astrDrivers 数组中。

如果您想检索多列,最好的选择是创建一个自定义对象,如下所示:

class ObjectNewFact:NSObject {
var column1:String = String() // You might want to choose more descriptive variable names (I just don't know what your column names are).
var column2:Int = Int()
// etc.
}

然后,您可以使用类似的行创建一个 ObjectNewFact 数组

var aFacts:[ObjectNewFact] = [ObjectNewFact]()

然后您可以修改例程以从 Parse 检索数据:

    var query:PFQuery = PFQuery(className: "Drivers")
query.addAscendingOrder("Name")
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
if let objects = objects as? [PFObject] {
for object in objects {
var NewFact:ObjectNewFact = ObjectNewFact()
NewFact.column1 = object["Column1"] as! String
NewFact.column2 = object["Column2"] as! Int
self.aFacts.append(NewFact)
}
}
self.pkvDriverTrack.reloadAllComponents()
} else {
print("Error: \(error) \(error!.userInfo)")
}
}

现在你已经有了一个充满事实的数组。您可能想要采用这种自定义对象方法,因为您还可以包含事实 ID 或事实已显示的次数等内容(如果您正在跟踪此类内容)。它为 future 的任何变化提供了更灵活的解决方案。

我希望这有帮助。

关于ios - 查询解析表中的所有数据并放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com