Je tire des données de Parse dans un tableau, mais ont besoin d'un moyen de référencer cet objet spécifique directement pour apporter des modifications aux données sur le serveur (ex: suppression de une entrée spécifique l'application et l'avoir supprimer sur le serveur). Auparavant, j'utilisais un tableau rempli d'un fichier PFQuery, qui fonctionnait pour extraire les données mais pas pour les sauvegarder. Je pense que la création d'un dictionnaire avec [objectID: chaîne de données nécessaire] fonctionnerait, de sorte que chaque ensemble de données actuellement dans le tableau serait toujours couplé directement à son identifiant. Mon problème est de tirer vers le bas les deux ensembles de données (objectID et chaîne de données) et de les faire correspondre dans le dictionnaire. Des conseils ou de l'aide?dictionnaire de charge avec objectID et les données de Parse à Swift
J'ai changé le tableau original à un dictionnaire dans la variable cellContent mais sinon le code est encore mis en place pour un tableau.
Merci!
import UIKit
import Parse
var segueWorker = ""
class MyWorkersViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var cellContent = [String: String]()
@IBAction func backButton(_ sender: Any) {
navigationController?.popViewController(animated: true)
performSegue(withIdentifier: "workersToMyFarm", sender: self)
}
@IBOutlet weak var tableView: UITableView!
internal func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cellContent.count
}
internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "Cell")
cell.textLabel?.text = cellContent[indexPath.row]
return cell
}
override func viewDidAppear(_ animated: Bool) {
// Do any additional setup after loading the view.
self.cellContent.removeAll()
let query = PFQuery(className: "Workers")
query.findObjectsInBackground(block: { (objects1, error) in
if error != nil {
print(error!)
} else {
query.whereKey("username", equalTo: PFUser.current()?.username)
query.findObjectsInBackground(block: { (objects2, error) in
for object in objects2! {
self.cellContent.append(object["workerName"] as! String)
self.cellContent.sort()
self.tableView.reloadData()
}
}
)}
}
)}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == UITableViewCellEditingStyle.delete {
cellContent.remove(at: indexPath.row)
tableView.reloadData()
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let indexPath = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRow(at: indexPath!)!
segueWorker = (currentCell.textLabel!.text!)
performSegue(withIdentifier: "toAddWorkers", sender: self)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}