我的应用程序的相关部分包括 2 个视图(view1 和 view2)、1 个操作(OP1)、一个单例对象(sObj)、1 个队列和 1 个 BOOL。单例持有队列引用并公开 OP1。
在 view1 中,我启动了一个 OP1 异步(它检索 view2 的项目)。我将 OP1 分派到 view1 上由“sObj”处理的队列(用户填写表单的其余部分并)按“下一步”,推送 view2,view2 获取“sObj”引用并检查操作是否完成,如果是,它获取结果并显示,如果没有,则进入循环检查属性“OP1Completed”。
如果用户在选择选项时“慢”,那么 OP1 很有可能会在 view2 被推送之前完成,这很好,并且可以完美运行!但是,如果用户使用默认值,则有 99% 的机会在 OP1 完成之前点击“下一步”,这应该没问题,但事实并非如此。
检查日志和调试我注意到队列上运行的异步块只是在 view2 被推送时停止运行......并且因为从未设置“OP1Completed”标志,然后其他一切都在中断......
谁能帮忙?我迷路了!