ios - 检查 Parse 中是否存在一行,是否更新该行中的列而不是每次创建新行。 swift

标签 ios swift parse-platform swift2 pfquery

我有一个名为 SearchPreferences 的类名,在当前用户做出选择之前它是空的。当他们做出选择时,会在此类中创建一个包含更新信息的新行。问题是,如果用户返回并进行另一个选择,我将再次创建一个新行,而不仅仅是更新列。这是保存信息但在新行上的代码:`

let music = PFObject(className: "SearchPreferences")

    music["music"] = table_data[indexPath.row]

    // music["user"] = PFUser.currentUser()!.username!

    music.saveInBackgroundWithBlock{(success, error) -> Void in

        if error == nil {

            music.saveInBackground()
            print("success")
        } else {

            print("error")
        }
    }

` 我能找到的只有 SQL 和 PHP 在线帮助。我尝试使用下面的代码来调用 objId 但我不知道它是空的,因此它返回以下错误。 下面的代码返回错误

No results matched the query. (Code: 101, Version: 1.7.5)

 let query = PFQuery(className:"SearchPreferences")
    query.getObjectInBackgroundWithId("musicSearch") {
        (searchPreference: PFObject?, error: NSError?) -> Void in
        if error != nil {

            if let searchPreference = searchPreference {
                searchPreference["musicSearch"] = self.table_data[indexPath.row]
                searchPreference.saveInBackground()

                if error == nil {

                    query.whereKeyDoesNotExist("musicSearch")

                    let searchPreference = PFObject(className: "SearchPreferences")

                    searchPreference["musicSearch"] = self.table_data[indexPath.row]


                    searchPreference.saveInBackgroundWithBlock{(success, error) -> Void in

可以为此尝试发送相同的内容:

    var query = PFQuery(className:"SearchPreferences")
    query.getObjectInBackgroundWithId("musicSearch") {
        (searchPreference: PFObject?, error: NSError?) -> Void in
        if error != nil {
            print(error)
        } else if let searchPreference = searchPreference {
            searchPreference["musicSearch"] = self.table_data[indexPath.row]
            searchPreference.saveInBackground()
        }
    }

我试图弄清楚如何在运行查询之前检查它是否为空以及是否执行我的初始查询。解析文档仅告诉您如何保存到类名 _User 而不是第二个类名。

最佳答案

Here is an example对于来自解析社区的重复记录更新,您可以使用相同的方法将其应用到您的代码中。

关于ios - 检查 Parse 中是否存在一行,是否更新该行中的列而不是每次创建新行。 swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33577825/

相关文章:

android - 从 onListItemClick 获取解析对象 ID

ios - 在应用程序角标(Badge)中显示当前日期

iphone - UIButtons 位于 UIView 下方,造成干扰

ios - player-swift库,如何调整播放速率

Swift UIAlertController 背景颜色

ios - 如何在 Google Map iOS Swift 中获取点击位置的经纬度

android - 错误:任务执行失败

ios - iOS 应用程序在设备上运行时不显示图像

占位符 View 和导航栏之间的 iOS 空间

ios - 保存字符串以快速解析数组