2015-11-07 1 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() 
     } 
    } 

Я пытаюсь выяснить, как либо перед выполнением проверки запроса если он пуст, и если он выполнит мой первоначальный запрос. Parse docs только расскажет вам, как сохранить имя класса _User, а не второе имя класса.

ответ

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) 
    } 
}) 
} 
Смежные вопросы