我不确定如何防止我的应用中出现错误。我需要使用URLSession.shared.dataTask调用服务器,如果我允许它完成,它可以正常工作。但是,如果我在URLSession.shared.dataTask完成之前将uiviewcontroller从堆栈中弹出,则会发生运行时错误,因为viewcontroller不再存在。它发生在json解析和网络调用的不同位置。通常在回叫或网络调用失败时显示错误。当uiviewcontroller取消或在网络调用代码中检测到uiviewcontroller已经消失时,有没有人知道如何停止网络调用,所以我不打电话给回调。我正在使用Xcode 8和iOS 10与Swift 3.谢谢。
答案 0 :(得分:2)
在弹出VC 之前,请将其命名为:
firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
(你可能需要转换o Swift,因为它们在Obj-c中,但是你明白了)
如果您愿意,also detect if it is the last VC可以弹出,如果您愿意,可以使用[dataTask cancel]
dataTask = nil // if needed
方法执行此操作。