ios - 将值设置为FIRDataSnapshot

时间:2017-06-10 19:31:48

标签: ios swift firebase firebase-realtime-database

我是swift的新手,在为FIRDataSnapshot设置值方面遇到了麻烦。我只是创建了一个计算器。我在didload方法中使用了MealCaloryArray并显示了tableviewcell(在FIRDataSnapshot列表的帮助下)并且在plus函数中更改了卡路里,我必须再次将新值发送到tableviewcell。但是,我无法在FIRDataSnapshot数组列表中设置新值。我尝试使用self.calory[buttonRow].setValue(<value: n, forUndefinedKey:""),但我没有适当的&#34; forUndefinedKey&#34;值。你有什么建议吗?

附加了我的嵌套Firebase数据库结构和代码块。

Firebase子结构:

Database Screenshot

var calory: [FIRDataSnapshot]! = []

override func viewDidLoad() {

ref = FIRDatabase.database().reference()
let CoursesRef = ref.child("CompanyMeals")

CoursesRef.observe(.childAdded, with: { snapshot in

self.calory = snapshot.childSnapshot(forPath: "MealCaloryArray").children.allObjects as! [FIRDataSnapshot]
self.calory.append(snapshot)
self.ingredientTableView.reloadData()
})
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = ingredientTableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MealCalculatorListCell
let cellcalory = self.calory[indexPath.row].value as? Double

if (cellcalory != nil) {
cell.itemTotalCalory.text = ("\(cellcalory!)")//String (describing: cellcalory)
let cellcalory1 = Int(cellcalory!)
firstCaloriesArray.append((cellcalory1 as AnyObject))
}
}

@IBAction func plusAction(sender: UIButton) {

cell.itemTotalCalory.text = String ((Int(oldcalory!) + fcCalory))
let newcalory = cell.itemTotalCalory.text
let n = String(newcalory!)
self.calory[buttonRow].setValue(value: n, forUndefinedKey: "")
}

0 个答案:

没有答案