Objective-c类设计/组织

标签 objective-c ios

我已经创建了我的第一个 iPhone 应用程序,它可以在表格 View 中显示类似类型的音轨。用户可以使用类似 ipod 的控件来播放音轨,这些控件可以流式传输 mp3。

我的所有代码都在两个主要类中:RootViewControllerCustomCell

我的 RootViewControllerClass 很大。我假设将几乎所有代码都塞进一个类是糟糕的设计吗?

最初,我认为这是有道理的,因为我只有一个 View Controller 。为了实践更好的编码约定,我想将我的 RootViewController 类拆分为更小的特定类(假设这是正确的做法?)。

以下是我计划分离到单独类中的 RootViewController 组件:

  • DataSource - 从服务器拉取数据;修改和组织 tableView 的数据
  • TopChartsView - 在 View 中包含按钮,用于按每周/每月/全时最高评分修改音轨(数据源)
  • GenreChange - 在 View 中包含按流派过滤数据源的按钮
  • AudioPlayerControls - 在类似于 iPod 控件的 View 中包含按钮

我是否正确组织了类(class)?我按功能组织类(class)似乎是有道理的。但是,我很难理解类在理想设计中应该如何交互。

我是否使用协议(protocol)和委托(delegate)将我的类链接在一起?

最佳答案

设计 iOS 应用主要是关于 MVC 设计模式,这意味着您将模型、 View 和 Controller 分开。在您的情况下,我会将 DataSource 逻辑放在一个或多个单独的文件中(这是您的模型)。这也使得稍后在另一个 View Controller 中重用相同的逻辑变得更加容易。如果那里有很多代码,也许你也可以将你的 UITableView 子类化。

协议(protocol)和委托(delegate)是连接类的好方法,在好的设计中经常使用它们。由于您的应用程序中没有很多 View Controller (据我所知),因此使用它们的机会不多,如果我错了请纠正我;)

关于Objective-c类设计/组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938105/

相关文章:

iphone - 如何让 iPhone 在播放视频时自动锁定

iOS 应用程序因未知原因崩溃

ios - Swift 3-使用自定义对象声明NSMutableArray数据类型

objective-c - 在特定时间执行选择器

ios - 为什么我收到控制台警告 : [Process] kill() returned unexpected error 1 when I load a WKWebView in iOS13. 2?

iphone - 如何将数组元素添加到已包含另一个数组值的 NSMutableArray?

ios - 在文本字段中输入警报而不是键盘 ->光标停留在文本字段Swift2中

ios - 如何使用对象映射器解析以下 JSON

ios - 定位不起作用

ios - 单元格在滚动后丢失 gradientLayer