Parse Datenbank, PFObject Updaten

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

    • Parse Datenbank, PFObject Updaten

      Guten Abend zusammen,

      ich suche aktuell eine Lösung für ein Problem mit Parse in Verbindung mit einem TableView in meiner App. Habe allerdings das Gefühlt einen Denkfehler zu haben.
      Ich hoffe ihr könnt mir weiterhelfen <X

      Und zwar möchte ich, dass, wenn ein Button auf einer Zelle des TableViews gedrückt wird, sich die Row in Parse aktualisiert und den aktuelle Nutzer der App der Row in Parse hinzufügt. Updatefunktion soweit fertig:

      Quellcode

      1. @objc func apply2() {
      2. let query = PFQuery(className:"Jobs")
      3. query.getObjectInBackground(withId: "") { (job: PFObject?, error: Error?) in
      4. if let error = error {
      5. print(error.localizedDescription)
      6. } else if let jobs = job {
      7. jobs["ANuser"] = PFUser.current()
      8. jobs.saveInBackground(block: {(success, error) in
      9. if let error = error {
      10. self.displayAlert(title: "Bewerben Fehlgeschlagen", message: "Bitte versuche es später erneut!")
      11. print("Bewerben fehlgeschlagen")
      12. }else {
      13. print("Beworben")
      14. let vc: MainViewController!
      15. vc = MainViewController()
      16. vc.modalPresentationStyle = .fullScreen
      17. self.present(vc, animated: false)
      18. }
      19. })
      20. }
      21. }
      22. }
      Alles anzeigen

      Meine Frage, wie bekomme ich jetzt die Object-Id von der Zelle raus, die gedrückt wurde? Die Id wird in einem Array gespeichert wenn die Daten vom Server runtergeladen werden.

      Ich danke euch für eure Hilfe
      Tom

      //Edit: Die Zelle, welche dem Nutzer angezeigt wird ist per IndexPath.row mit jeder Menge Daten und letztlich einer Row in Parse verbunden.
      Hier einmal der restliche Code der Datei:

      Quellcode

      1. import UIKit
      2. import Parse
      3. class ChooseJobViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
      4. private var reuseIdentifer = "ChooseJobCell"
      5. var titleLabel: UILabel!
      6. var backButton: UIButton!
      7. let tableView = UITableView()
      8. var objectsIds = [String]()
      9. var choosedId = ""
      10. //var users = [String]()
      11. var jobNames = [String]()
      12. var regions = [String]()
      13. //var distances = [String]()
      14. var hours = [String]()
      15. var wages = [String]()
      16. var totalWages = [String]()
      17. override func viewDidLoad() {
      18. super.viewDidLoad()
      19. view.backgroundColor = .white
      20. retrieveJobs()
      21. createViewControllerItems()
      22. }
      23. func createViewControllerItems() {
      24. skip
      25. }
      26. @objc func backMenu() {
      27. let vc: MainViewController!
      28. vc = MainViewController()
      29. vc.modalPresentationStyle = .fullScreen
      30. present(vc, animated: false)
      31. }
      32. func numberOfSections(in tableView: UITableView) -> Int {
      33. return 1
      34. }
      35. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
      36. return jobNames.count
      37. }
      38. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
      39. let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifer, for: indexPath) as! ChooseJobCell
      40. //cell.userLabel.text = users[indexPath.row]
      41. cell.descriptionLabel.text = jobNames[indexPath.row]
      42. cell.regionLabel.text = regions[indexPath.row]
      43. //cell.distanceLabel.text = distances[indexPath.row]
      44. cell.wageLabel.text = "\(wages[indexPath.row])€"
      45. cell.hourLabel.text = "\(hours[indexPath.row]) Stunden"
      46. cell.finalWageLabel.text = "\(totalWages[indexPath.row])"
      47. cell.applyButton.setTitle("Bewerben", for: UIControl.State.normal)
      48. cell.applyButton.addTarget(self, action: #selector(apply), for: .touchUpInside)
      49. return cell
      50. }
      51. func retrieveJobs() {
      52. let query = PFQuery(className: "Jobs")
      53. query.findObjectsInBackground { (objects, error) in
      54. if let users = objects {
      55. for user in users {
      56. self.objectsIds.append(user.objectId!)
      57. //self.users.append(user["user"] as! String)
      58. self.jobNames.append(user["job"] as! String)
      59. self.regions.append(user["region"] as! String)
      60. //self.distances.append(user["distance"] as! String)
      61. self.hours.append(user["hour"] as! String)
      62. self.wages.append(user["wage"] as! String)
      63. self.totalWages.append(user["finalwage"] as! String)
      64. self.tableView.reloadData()
      65. }
      66. }
      67. }
      68. }
      Alles anzeigen

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Tom16092 ()