gpt4 book ai didi

ios - Swift 4 中的 MVC - 模型与 Controller 的交互

转载 作者:行者123 更新时间:2023-11-30 11:38:08 24 4
gpt4 key购买 nike

我正在使用 Swift 4 开发一个移动应用程序,它需要使用蓝牙 LE 连接与外部设备进行交互。

目前我正在使用模型- View - Controller 模式来实现应用程序的结构,但我需要澄清一下。

当我从蓝牙适配器接收数据时,我将其存储在模型中。模型与 Controller 对话,使用通知中心“发布”更改。另一方面, Controller (模型的所有者)将修改写回模型,只需设置它的属性即可。

问题是,有时,我没有准备好 Controller (实例化),因此我可能会丢失模型的更新(在那一刻我还没有准备好“观察”模型的更新)。

我发现解决此问题的唯一方法是:

  1. 在 Controller viewDidLoad中使用模型属性的“getters”读取模型的状态。
  2. 注册 Controller 以观察 future 的模型更新。

现在工作正常,但我想了解的是这是否是模型和 Controller 之间通信的正确行为。

最佳答案

您可以在 View Controller 中为该模型创建一个变量。对于变量,实现 didSet 并执行您想要在 View Controller 中执行的操作。您无需使用通知中心发布更改。在viewDidLoad中,您可以第一次从蓝牙适配器获取数据。此后,每当您从蓝牙适配器收到更新的数据时,仅更新模型。它将为您完成其余的事情。

关于ios - Swift 4 中的 MVC - 模型与 Controller 的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49521852/

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