2015-11-07 62 views
0

我有一個名爲SearchPreferences的類名,它是空的,直到當前用戶進行選擇。當他們做出選擇時,在這個類中用更新的信息創建一個新行。問題是如果用戶返回並做出另一個選擇,我將再次創建一個新行,而不是僅更新列。這裏是保存信息,但在新的一行代碼:`檢查Parse中是否存在行,如果它更新行中的列而不是每次創建新行。 Swift

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,但我不知道它是空的,所以它返回下面的錯誤。 下面的代碼返回錯誤

沒有結果與查詢匹配。 (代號:101,版本: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() 
     } 
    } 

我試圖運行查詢,檢查如何之前要弄清楚如果它是空的,並且它是執行我最初的查詢。解析文檔只告訴你如何保存到類名_用戶不是第二個類名。

回答

0

Here is an example重複記錄從解析社區更新,您可以使用相同的方法將其應用於您的代碼。

+0

謝謝法哈德我會看一看,然後投票你的答案。 – Grace

0
let adventureQuery = PFQuery(className: 「Class Name「) 
adventureQuery.limit = 1000 
adventureQuery.addDescendingOrder(「Column Name」) 
adventureQuery.getFirstObjectInBackground { (Success, error) in 
    Success?.setValue(self.toolsTitleTextField.text, forKey: "toolsTitle") 
    Success?.setValue(self.locationTextField.text, forKey: "location") 
    Success?.setValue(self.dateTextField.text, forKey: "createrDate") 

    Success?.saveInBackground(block: { (success, error) in 
    if (success){ 
     Utility.showAlert("Success!", message: "Insert SuccessFully", viewController: self) 
    } 
    else{ 
     let viewController = self.storyboard?.instantiateViewController(withIdentifier: "") as! ViewController 
     self.navigationController?.pushViewController(viewController, animated: true) 
    } 
}) 
} 
相關問題