使用app delegate启动iOS应用程序

时间:2013-10-21 17:15:10

标签: ios cocoa-touch uiapplicationdelegate application-design

我想知道我是否应该更少依赖我的项目'App Delegate来设置我的应用程序 - 或者这类代码是否属于该模型的单例类部分?

例如-let说,在我的用户进入第一个视图之前 - 我需要应用程序从服务器下载一些数据,我需要执行一些检查并创建一个BaseDataStore类型的类来存储应用程序的东西下载。所有这一切都在我的应用程序启

将所有这些代码放在applicationDidFinishLaunchingWithOptions中似乎是正确的做法 - 因为这是应用程序启动后调用的内容。我的问题:这是正确的地方吗?或者我为这类事创建自己的类?

2 个答案:

答案 0 :(得分:2)

简而言之:是的,你需要创建自己的类。

将所有代码放在AppDelegate和ViewController类中是iOS中的一种流行习惯。 iOS应用程序往往具有小型(自动生成的)模型类,然后通过ViewControllers或AppDelegate进行管理。这是创建放屁应用程序之类的最快方法。

如果您正在构建比放大屁更大的东西,我建议采用不同的方法:经理类可以改变您的模型(设置,保存等)。然后AppDelegate在需要时调用模型管理器。此外,当“应用程序逻辑”放置在模型类中时,应用程序代码通常会得到改进。为了适应模型更改(并重新生成模型类),应该通过包含“应用程序逻辑”的类别扩展自动生成的ManagedObjects。

答案 1 :(得分:1)

对于从网络加载数据的简单项目,您的流程应该是:

  1. 创建自定义LoadingViewController
  2. 从AppDelegate applicationDidFinishLaunchingWithOptions
  3. 显示
  4. 使用实体管理器获取数据
  5. 使用回调(委托模式应该很好)根据您的数据启动第一个viewcontroller
  6. 前两个步骤用于显示应用程序数据正在加载给用户(如果不这样做,则会显示Default.png显示很长时间)。如果可以刷新第一个ViewController数据,您可以直接加载它,首先显示缓存数据并启动刷新。