我有一个名为 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/