我正在编写一些代码,其中有一个Food对象,我有一个Food对象数组:var list:[Food] = [](这行代码在开头称为全局变量)我有行在解析中生成数组的代码,但我不确定它是否正常工作,当它应该是
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? }