我正在做一个大项目。所以这就是我的应用程序包含大量编码的原因。这个项目的有趣之处在于它只包含一个主视图,而这个主视图包含 25 个子视图,每个子视图都包含 UITableview。所以对我来说问题是,如果我在主视图中声明所有这些子视图和 uitableview 以及每个子视图所需的不同功能它造成混乱。现在为了方便起见,我想为每个子视图创建单独的类,但我不熟悉如何在我的 mainviewviewcontroller 中访问所有这些类。如果有人无法理解我的问题,请访问此链接。http://chris-software.com/index.php/2009/05/02/passing-data-between-classes/
3 回答
从您的评论看来,您已经编写了您在问题中提到的内容,现在,您尝试使您的代码可扩展,并按照 zoul 的建议将其分开。
正如zoul所提到的,您的问题没有任何确切的解决方案,因为您的问题也不准确,或者说具体。
不幸的是,正如您在评论中提到的那样,您想要实现的目标并不完全可能。但是,让我尝试给您一些提示,在重构代码时您可能会发现它很有用。
- 确定需要在不同类之间共享哪些数据。
- 为您的应用程序确定视图控制器。我这么说是指您的应用程序可能需要的视图控制器的数量。您也可以使用更少数量的视图控制器来完成任务。
- 如果共享数据的大小相当大,我建议您使用 SQLite 或 CoreData 来满足您的需要。
欢迎具体查询。祝你好运:)
附加说明:尽量遵循Apple提供的设计模式,最重要的是在SDLC的初始阶段。
首先,一定要把代码拆分成单独的控制器或视图,否则你会进入痛苦的世界。其次,在 Stack Overflow 上很难回答您当前的问题,因为这是一个关于架构的问题,正确回答它需要对您的问题进行更长时间的讨论;没有现成的解决方案。
通常,在这种情况下,您希望将单独的屏幕或视图构建为具有允许根据需要将它们连接在一起的接口的单独控制器。(努力设计单个控制器以尽可能少地了解其他控制器。)然后您可以拥有一个类来创建所有组件并将它们连接在一起。有许多特定的工具可以帮助解决这个问题,尤其是UIViewController
iOS 5 中引入的容器 API。
解决您在新/不同课程中不时使用相同代码的问题,可重用性是关键。但是要做到这一点,您必须遵循“松耦合和高内聚”原则。本质上,您需要像组件一样创建每个子视图,它执行特定任务并且不知道或不依赖于外部因素(如其父级等)。最后,我觉得您在尝试重用代码时面临的主要问题是因为您正在使用 IB 将函数连接到 UI 事件。我建议使用目标和选择器属性进行连接,因为这将简化可重复使用性并保持您的代码谨慎和清洁。
您可以在此处阅读有关耦合和内聚的更多信息Loose Coupling and High Cohesion