OGeek|极客世界-中国程序员成长平台

标题: iphone - iOS 应用程序分区/MVC [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:55
标题: iphone - iOS 应用程序分区/MVC

我一直在玩 iOS 开发,现在我想创建一些超越简单应用程序的东西的阶段。但是,我不确定我是否了解如何正确分区应用程序。

为了简单起见,想象一个(非常)简单的音频播放器应用程序。假设有两个 View Controller ,可通过 UITabBarController 访问,该 Controller 实例化了主 AppDelegate 类。

每个 View Controller 都有以下职责:

  1. PlayerViewController - 当用户按下按钮时播放“当前”音频样本的声音播放器。

  2. SelectorViewController - 一个样本选择器,它使用 UIPickerView 来显示可用的音频样本,以便用户可以选择他们想要播放的样本。

到目前为止,一切都很好。但是,我不太明白的是我应该将可用样本的数据存储在哪里,以便两个 View 都可以找到可用样本的信息,触发样本播放等。

由于两个 View Controller 都需要访问此“模型级别”信息,因此创建“音频管理器”单例类是否是一种明智的方法,或者是否有(我猜测的可能性更大)更好的解决方法我忽略了这个问题。

任何指针将不胜感激。



Best Answer-推荐答案


我在严肃的应用程序中多次使用过这种模式(单例数据管理器)。它非常简单、易于理解、易于使用,尽管这种模式被 OOP 纯粹主义者所鄙视。

如果没有人告诉您使用单例是错误的,请继续,请务必查看 Apple 的文档以了解推荐的实现(有很多方法需要重载)。

哦,顺便说一句,Apple 在 iOS SDK 中经常使用它,因此这是一种常见做法(请参阅以“共享”开头的类方法)。

更新:

另一种可能性是重用已经存在的单例,例如应用程序委托(delegate)。它可能感觉更干净,或者不是,这更多的是品味问题。它的优点是提供了一个明确的“入口点”,您可以在其中分配/创建/初始化数据管理器。

关于iphone - iOS 应用程序分区/MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089148/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4