我有一个技术问题...我通过使用此代码获得了所需的结果但由于某种原因,它似乎不是“正确的”编程方式。任何人都可以告诉我,如果我的代码完全合理,或者有更好的方法吗?
所以我需要访问滑块的更改值并将其保存到我的后端(Parse),但因为我以编程方式添加了滑块/表格单元格,所以我很难直接访问更改后的值。
所以我创建了一个名为theDistance的全局变量,并将其设置为滑块更改后的值文本,然后将其放入函数中进行保存。
这是完成此类任务的正确方法吗?
var theDistance: String = ""
@IBAction func doneButton(sender: AnyObject) {
runSearch()
self.performSegueWithIdentifier("toBrowsePage", sender: self)
}
func runSearch() {
var mySearch = PFObject(className: "Searches")
mySearch["distanceSearches"] = String(theDistance)
mySearch.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
if success {
}
})
}
func sliderValueChanged(sender: UISlider) {
var slider = sender
let cell = self.theTableView.cellForRowAtIndexPath(NSIndexPath(forRow: slider.tag, inSection: 0)) as UITableViewCell!
for view in cell.subviews {
var theValue = Int(slider.value)
if let label = view as? UILabel {
label.text = "\(theValue)" + "mi."
theDistance = label.text!
}
}
}
答案 0 :(得分:0)
更好的方法是在数据发生变化时直接使用新数据更新数据模型,然后始终从模型层提取数据。缓存更改的结果不是处理此问题的最佳方法。
你对这段代码是正确的直觉;当您将来更新布局或功能时,它会导致各种错误。