当您按下应用程序图标并在主页上选择其中一个快速操作时,您有两个选择:
1。该应用已在运行(在后台)
在这种情况下,快速操作由performActionForShortcutItem:completionHandler:
2。您的应用正在推出
在这种情况下,调用/ willFinishLaunching然后调用performActionForShortcutItem:completionHandler:
我在一篇文章中读到,如果应用程序是由Quick Action启动的话,你必须检查did / willFinishLaunching,如果是,请在那里处理它并返回false,这样performActionForShortcutItem:completionHandler:
就不会被调用再次。我想知道为什么这种方法更好?这是因为否则您的整个应用程序已启动,然后处理快速操作而不是直接处理快速操作。
答案 0 :(得分:1)
丹在评论中指出,Apple Documentation解释了为什么我们应该这样编程。
请求的快速操作可能会使用与应用程序启动时使用的代码路径不同的代码路径。例如,假设您的应用通常会启动以显示视图A,但您的应用是为响应需要视图B的快速操作而启动的。要处理此类情况,请在启动时检查您的应用是否通过快速操作启动。