我正在制作一个电子商务应用程序。在购物篮视图控制器上,当用户点击“结帐”按钮时,我想检查商品的可用性并相应地更新购物篮,例如在库存不足时,数量将更改为可用库存,或者当没有库存时,将产品从购物篮中取出,然后再定购到另一个视图控制器。问题是,我有一个具有完成处理程序的函数,该处理函数仅应在函数完成且未对购物篮进行任何更改时才调用performSegue,但是,它仍在函数完成之前转到另一个视图控制器。有关如何正确执行此操作的任何建议?
答案 0 :(得分:0)
我的完成处理程序未正确完成,因此它无法正常工作。但是我终于可以将其与以下代码一起使用
var changes = Bool()
func getBasketItems(completion: @escaping(_ success:Bool) -> Void) {
//each time there's an update to the database I set changes to true
changes = true
completion(changes)
}
我将其用作下面的代码
self.getBasketItems { (success) in
if success {
// there are changes, update basket tableview
print("there are changes")
} else {
self.performSegue(withIdentifier: "goToMap", sender: self)
}
}