【发布时间】:2018-01-14 00:50:16
【问题描述】:
我正在将数据从 Parse 提取到一个数组中,但需要一种方法来直接引用该特定对象以更改服务器上的数据(例如:从应用程序中删除特定条目并在服务器上将其删除) .以前我使用的是一个填充有 PFQuery 的数组,该数组用于下拉数据,但不能用于备份更改。我认为用 [objectID : string of data required] 创建一个字典会起作用,因此当前数组中的每个数据集总是直接与其标识符配对。我的问题是将两组数据(objectID 和数据字符串)拉下来并在字典中匹配它们。有什么建议或帮助吗?
我将原始数组更改为 cellContent 变量中的字典,但其他代码仍为数组设置。
谢谢!
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.
}
}
【问题讨论】:
标签: arrays swift dictionary parse-platform