gpt4 book ai didi

ios - 当模型应该在启动后不久就开始某些事件时,iOS 中的规范设计模式/构造是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:19 25 4
gpt4 key购买 nike

我的应用程序的高级设计包括 App Delegate 作为在 didFinishLaunchingWithOption 中创建的模型的所有者,然后应用程序委托(delegate)将模型的引用传递给需要使用它的任何 Controller 类。

在应用启动时,我的应用需要调用服务器并下载一些内容。这一定是许多应用程序常见的事情,我的问题是这样做的标准方法是什么,特别是哪个对象以及在什么时候应该负责指示模型连接到服务器?假设模型上有一个名为 CallHome() 的函数,使用 NSURLConnection 异步实现,它可以在完成时通知感兴趣的类。

我应该在哪里执行此操作:

1)是否可以在 didFinishLaunchingWithOptions 中完成?

2) 如果 didFinishLaunchingWithOptions 应该在模型执行 CallHome() 之前执行并返回,那么哪个类应该调用 CallHome()? AppDelegate 可以这样做吗?如果是,在哪里?

3) 模型能否调用 CallHome() 本身,如果可以,何时调用?

4) 或者这实际上是 Controller 的工作?如果是这样,它应该是根 Controller 吗?

5) 但是,如果根 Controller 不需要对模型的引用怎么办?那么这是否意味着它应该是另一个 Controller ?

对于此功能要求的高级设计,推荐的方法是什么?非常感谢。

最佳答案

您应该在第一个 View Controller 的 viewDidAppear 之前发出任何服务器请求,您可以在第一个 View Controller 的 viewDidAppear 中触发您的 Web 服务请求。幕后的原因是,如果您的网络服务调用是同步,它将阻塞主线程(理想情况下,您的应用程序不应阻塞应用程序的主线程),因此在设备上您的应用程序在启动期间会意外崩溃,因此在将其提交到 AppStore 时会被苹果拒绝。

关于ios - 当模型应该在启动后不久就开始某些事件时,iOS 中的规范设计模式/构造是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com