Ios 正在更新Parse.com的选定行中的多个值

Ios 正在更新Parse.com的选定行中的多个值,ios,swift,parse-platform,Ios,Swift,Parse Platform,使用:iOS Swift 2.0、xcode 7.1 我正在做一个零售商店应用程序的小演示项目。在这种情况下,每个卖家有一个以上的产品。Sellers StoreStatus打开/关闭(真/假)布尔值存储在“用户”类中。客户可以看到“主”类中的所有卖家产品。虽然那里什么也没有,但我仍然在Parse.com中附上了Main和User类的图片 现在,假设我想隐藏“百思买商店(商店ID 101)”关闭时出售的所有产品。由于“Main”类由“n”个卖家和这些产品组成,我不知道如何迭代“Main”类中的所

使用:iOS Swift 2.0、xcode 7.1

我正在做一个零售商店应用程序的小演示项目。在这种情况下,每个卖家有一个以上的产品。Sellers StoreStatus打开/关闭(真/假)布尔值存储在“用户”类中。客户可以看到“主”类中的所有卖家产品。虽然那里什么也没有,但我仍然在Parse.com中附上了Main和User类的图片

现在,假设我想隐藏“百思买商店(商店ID 101)”关闭时出售的所有产品。由于“Main”类由“n”个卖家和这些产品组成,我不知道如何迭代“Main”类中的所有产品,过滤BestBuy商店产品,并将StoreStatus bool值设置为false

我在网上看到,我们可以在解析中使用saveAllInBackground和Block。但我并没有真正了解如何实际使用这些代码,因为大多数答案对我来说太复杂了

例如:

Parse.com在目标C中具有以下功能:

+ (void)saveAllInBackground:(PF_NULLABLE NSArray PF_GENERIC ( PFObject *) *)objects block:(PF_NULLABLE PFBooleanResultBlock)block

有人能帮我吗

我希望这能有所帮助。这是您获取具有特定Id的所有门店并更改其所有门店状态的方式

func updateStoreStatus(storeId:Int, to storeStatus:Bool) {
    let query = PFQuery(className: "Main")
    query.whereKey("StoreID", equalTo: storeId)

    //Find all stores with a specific storeId
    query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
        if error == nil {
            if let bestBuyStores = objects {

                //Change all of their store statuses
                for bestBuyStore in bestBuyStores {
                    bestBuyStore.setObject(storeStatus, forKey: "storeStatus")

                    //Or if you want to set it the current user's store status
                    //bestBuyStore.setObject(PFUser.currentUser()?["storeStatus"], forKey:"storeStatus")
                }
                //Save all of them in one call to Parse
                PFObject.saveAllInBackground(bestBuyStores)
            } else {
                print("No Stores with the StoreID: \(storeId) found")
            }
        } else {
            print(error?.localizedDescription)
        }
    }
}

您不会重复更新实际的解析数据。只需在查询中过滤掉这些存储即可operation@Paulw11我不明白。我该怎么做?问题是,如果在“Main”类中有storeStatus,我可以使用whereKey“storeStatus”查询。。。但是没有状态我怎么能查询呢?需要明确的是,店主可以出于某种原因故意关闭商店。我只是想给他这个特征。我有能力隐藏单个项目。但是,如果商店关门,最好一次就把所有东西都藏起来。因此,如果storeStatus=false,所有内容都将隐藏(对在线浏览产品的客户而言)。您将把功能与存储数据的方式混淆了。首先,您不应该在该列中存储数值
storeID
,而应该存储对store对象的引用(目前这是您的用户类,但实际上应该是一个单独的对象类)。然后,您可以创建一个查询来搜索打开的商店(平凡的storeStatus==true),并在产品查询操作中的
whereKey:matchesQuery:
中指定此查询。因此,根据您所说的,在这种情况下,我应该为每个商店创建一个新类,该类中存储有产品和状态?以后应该使用指针向客户显示数据吗?对不起,如果我是哑巴,但我仍在学习。在这种情况下,我可以使用任何教程来改进我的编码风格吗?哦,谢谢你的解释。如果我能在网上找到的话,我也会寻找一些东西。虽然Parse不是一个关系数据库,但它有关系,所以一些规范化是有意义的;将解析数据存储设计视为在应用程序中实现对象设计的方式。商店是一个对象。用户是一个对象。产品是一个对象。一个用户可以与一个或多个商店相关联。具有一个或多个用户(多个管理员)的商店。一个产品与一个商店关联(或者您可以进一步从库存中提取产品)。您可能不想为演示做所有这些。商店有一个状态和对其用户的引用。产品引用了Store我在bestBuyStore[“storeStatus”]=storeStatus时出错。如果我使用…=PFUser.CurrentUser()?[“storeStatus”]错误为“无法分配给'AnyObject?!'类型的不可变表达式”。知道会出现什么问题吗?尝试使用解析访问器设置storeStatus,而不是“bestBuyStore.setObject(storeStatus,forKey:“storeStatus”)”