我正在运行两种异步方法(请参阅此SO 线程以供参考)。
除非我有这种情况,否则它工作得很好。当任一方法发生错误时,我将为用户显示此信息,因此在块中我将检查错误并执行以下操作:
if(error) {
int64_t delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), {
// Show a popup for 2.0 seconds alerting the user of the error
});
}
这没有问题。但是当这两个异步操作都有错误时,就会出现问题。完成的第一个方法将显示错误可能仅 0.5 秒,然后第二个异步操作将显示错误 2.0 秒(不考虑已经显示错误消息)。
所以我需要一些过程来检查是否已经显示了错误消息,然后等待该错误消息消失(2.0 秒),然后立即显示第二条错误消息。