当前位置 : 主页 > 手机开发 > 其它 >

数组 – 在Parse.com中获取,存储和访问自定义数据数组

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在编写一些代码,其中有一个Food对象,我有一个Food对象数组:var list:[Food] = [](这行代码在开头称为全局变量)我有行在解析中生成数组的代码,但我不确定它是否正常工作,当它应该是
我正在编写一些代码,其中有一个Food对象,我有一个Food对象数组:var list:[Food] = [](这行代码在开头称为全局变量)我有行在解析中生成数组的代码,但我不确定它是否正常工作,当它应该是一个Food Object数组时,仍然在解析时说“undefined”.我的问题非常简单.

1 – 如何在Parse.com中制作Food对象数组?

2 – 如何从该数组中获取信息并使解析数组成为局部变量?

3 – 如何追加该数组,我知道我只能将.append(customFoodObject)调用到本地数组,这是我应该怎么做的?

4 – 一旦我编辑了数组,我是如何将其保存回解析?

:只是那4个问题,我被告知许多答案,如“只是使用查询”或“制作新对象”,但我给出了实际对象的名称,因为如果你给出了我能看到的代码,我会很感激.然后了解它是如何工作的;提前感谢您的帮助.

无论如何,问题需要一份巨大的手稿,尽管如此,我会尽可能用一些解释和代码片段回答你的问题.

对象包含类似的东西,因此它们将成为数据库中表的一行.毕竟Parse是一个糖高的数据库API.因此,对象将映射到Parse中的Class,或者特定于Food类的一行.

>在Parse中创建一个Food对象非常简单,因为文档是相当明确的.

let food = PFObject(className: "Food")
food["name"] = "Sushi Pizza"
food["price"] = "1100¥"

//saves on the server even if the networks fails now
//caches the result offline and when the phone enters in network it uploads
food.saveEventually(nil)

存储一系列食物这样做:

let foodClassName = "Food"
    for index in foods!{
        let object          = PFObject(className: foodClassName)
        object["name"]      = index.name
        object["price"]     = index.price
        object.saveEventually(nil)
    }

基本上,您使用className创建一个Food表,然后插入类似的对象并保存它.

>获取数组正在查询解析数据库.您只需要知道Class Parse使用的名称.在我们的例子中,如果“食物”存储在常数中,我们就会有.

let query = PFQuery(className: foodClassName)
//query.fromLocalDatastore()    //uncomment to query from the offline store
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
    if error == nil && objects != nil{
        for index in objects!{
            (index as! PFObject).pin()      //pining saves the object in offline parse db
            //the offline parse db is created automatically
            self.makeLocalVariable(index as! PFObject)  //this makes the local food object
        }
    }
}

因此,为了将它保存到locl Food对象,我们最初让我们像这样转换PFObject

var localFoods:[Food]?          //global scoped variable
func makeLocalVariable(index:PFObject){
    let foodname = index.objectForKey("name") as! String
    let price = index.objectForKey("price") as! String          //we had the currrecny saved too

    let foodObj = Food(name: foodname, price: price)
    localFoods?.append(foodObj)
}

>是的我这样做了.多数民众赞成.

4.因此,该过程基本上类似于获取数据.现在你要做的是假设获取Food名称为Pizza的数据,因为我们想要提高价格.你是怎么做到的.

let queryEdit = PFQuery(className: foodClassName)
    queryEdit.whereKey("name", equalTo: "Pizza")
    query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
        if error == nil && objects != nil{
            if objects!.count == 0{
                //edit
                let obj = (objects as! [PFObject]).first!
                obj.setValue("2340¥", forKey: "price")
                //save it back
                obj.saveEventually(nil)
            }
        }
    }

我希望我回答你的问题.记住,对象可以映射到Parse中的Class或关系数据库中的表或实体.然后该表可以有许多类似的实例,你可以说它们是一种类型的数组.

如果我可以帮助你,请告诉我.干杯!

这个例子的食物只是一个结构,但如果它具有功能,可以很容易地成为一个类.

struct Food{
   var name:String?
   var price:String?
}
网友评论