我一直在玩 iOS 开发,现在我想创建一些超越简单应用程序的东西的阶段。但是,我不确定我是否了解如何正确分区应用程序。
为了简单起见,想象一个(非常)简单的音频播放器应用程序。假设有两个 View Controller ,可通过 UITabBarController 访问,该 Controller 实例化了主 AppDelegate 类。
每个 View Controller 都有以下职责:
PlayerViewController - 当用户按下按钮时播放“当前”音频样本的声音播放器。
SelectorViewController - 一个样本选择器,它使用 UIPickerView 来显示可用的音频样本,以便用户可以选择他们想要播放的样本。
到目前为止,一切都很好。但是,我不太明白的是我应该将可用样本的数据存储在哪里,以便两个 View 都可以找到可用样本的信息,触发样本播放等。
由于两个 View Controller 都需要访问此“模型级别”信息,因此创建“音频管理器”单例类是否是一种明智的方法,或者是否有(我猜测的可能性更大)更好的解决方法我忽略了这个问题。
任何指针将不胜感激。
Best Answer-推荐答案 strong>
我在严肃的应用程序中多次使用过这种模式(单例数据管理器)。它非常简单、易于理解、易于使用,尽管这种模式被 OOP 纯粹主义者所鄙视。
如果没有人告诉您使用单例是错误的,请继续,请务必查看 Apple 的文档以了解推荐的实现(有很多方法需要重载)。
哦,顺便说一句,Apple 在 iOS SDK 中经常使用它,因此这是一种常见做法(请参阅以“共享”开头的类方法)。
更新:
另一种可能性是重用已经存在的单例,例如应用程序委托(delegate)。它可能感觉更干净,或者不是,这更多的是品味问题。它的优点是提供了一个明确的“入口点”,您可以在其中分配/创建/初始化数据管理器。
关于iphone - iOS 应用程序分区/MVC,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/4089148/
|