1

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

例如 - 假设在我的用户进入第一个视图之前 - 我需要应用程序从服务器下载一些数据,并且我需要执行一些检查并创建一个 BaseDataStore 类型的类来存储应用程序下载的内容。这一切都在我的应用程序启动之前完成。

将所有这些代码放入 applicationDidFinishLaunchingWithOptions 似乎是正确的做法 - 因为这是应用程序启动后调用的内容。我的问题:这是放置它的正确位置吗?还是我为这类事情创建自己的课程?

4

2 回答 2

2

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

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

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

于 2013-10-21T17:31:54.893 回答
1

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

  1. 创建一个自定义的 LoadingViewController
  2. 从 AppDelegate 显示它applicationDidFinishLaunchingWithOptions
  3. 使用实体管理器获取数据
  4. 使用回调(委托模式应该很好)根据您的数据启动第一个视图控制器

前 2 个步骤用于向用户显示正在加载的应用程序数据(如果您不这样做,您的 Default.png 将显示很长时间)。如果第一个 ViewController 数据可以刷新,您可以直接加载它,先显示缓存数据并启动刷新。

于 2013-10-21T17:40:10.457 回答