2016-08-18 36 views
0

每个人都看到了经典的didFinishLaunchingMethod横行。iOS应用程序中的复杂启动逻辑:它应该驻留在哪里?

现在好了,当像CloudKit一样启动时,我们还有其他事情需要咨询,也就是说,更糟糕的是,应用程序委托似乎是错误的地方,即使是最基本的东西,比如询问他们是否有帐户并建立同步或抓取快照。

我讨厌这些东西会进入应用程序启动的第一个控制器的想法,从我以前的日子里闪回到4GL tinkertoys。我们不得不尊重故事板的流程。在这方面我没有发现任何东西。可悲的是,苹果最广泛的例子是Lister,并不是最佳实践的重要来源。

回答

1

它适用于应用程序委托来触发此工作的开始,但不处理结果。通常你想要某种方式来显示进度/错误/请求用户信息。因此,拥有某种形式的'splash'视图控制器可以处理从启动映像到这个过程的转换,并控制流入主应用程序的操作非常方便。通常这种事物的逻辑在其他情况下是可重用的,所以部分应该在其他控制器类中。故事板可以使飞溅VC成为初始控制器,应用程序委托人可以创建数据控制器类,并将其传递给处理逻辑的数据控制器类,并将结果更新为VC(委托)。通常情况下,VC会将数据控制器传递到它显示的后续VC上,尽管这当然不是必需的。

相关问题