Iphone 如何在一个MainClass中访问多个Class数据?

Iphone 如何在一个MainClass中访问多个Class数据?,iphone,xcode,abstract-class,Iphone,Xcode,Abstract Class,我正在做一个大项目。这就是为什么我的应用程序包含很多代码。这个项目的有趣之处在于,它只包含一个主视图,这个主视图包含25个子视图,每个子视图都包含UITableview。所以,我的问题是,如果我在主视图中声明所有这些子视图和UITableview,以及每个子视图所需的不同函数,就会造成混乱。现在为了方便起见,我想为每个子视图创建单独的类,但我不熟悉如何在MainViewController中访问所有这些类。如果有人不能理解我的问题,请访问此链接 首先,一定要将代码拆分为单独的控制器或视图,否则您

我正在做一个大项目。这就是为什么我的应用程序包含很多代码。这个项目的有趣之处在于,它只包含一个主视图,这个主视图包含25个子视图,每个子视图都包含UITableview。所以,我的问题是,如果我在主视图中声明所有这些子视图和UITableview,以及每个子视图所需的不同函数,就会造成混乱。现在为了方便起见,我想为每个子视图创建单独的类,但我不熟悉如何在MainViewController中访问所有这些类。如果有人不能理解我的问题,请访问此链接

首先,一定要将代码拆分为单独的控制器或视图,否则您将进入痛苦的世界。其次,在这里很难回答您当前关于堆栈溢出的问题,因为这是一个关于体系结构的问题,正确地回答它需要对您的问题进行更长时间的讨论;没有现成的解决办法


通常,在这种情况下,您希望将单独的屏幕或视图构建为单独的控制器,并具有允许它们根据需要连接在一起的接口。(尽量设计单个控制器,使其尽可能少地了解其他控制器。)然后您可以有一个类来创建所有组件并将它们连接在一起。有许多特定的工具可以帮助实现这一点,特别是iOS 5中引入的
UIViewController
containment API。

首先,一定要将代码拆分为单独的控制器或视图,否则您将进入痛苦的世界。其次,在这里很难回答您当前关于堆栈溢出的问题,因为这是一个关于体系结构的问题,正确地回答它需要对您的问题进行更长时间的讨论;没有现成的解决办法


通常,在这种情况下,您希望将单独的屏幕或视图构建为单独的控制器,并具有允许它们根据需要连接在一起的接口。(尽量设计单个控制器,使其尽可能少地了解其他控制器。)然后您可以有一个类来创建所有组件并将它们连接在一起。有许多特定的工具可以帮助实现这一点,特别是iOS 5中引入的
UIViewController
包容API。

从您的评论中可以看出,您已经编写了问题中提到的代码,现在,您正试图使代码可伸缩,并按照zoul的建议将其分离

正如zoul所提到的,您的问题没有任何精确的解决方案,因为您的问题也不精确,或者说不具体

不幸的是,正如你在评论中提到的,你不可能完全实现你想要实现的目标。但是,让我试着给你一些提示,在重构代码时你可能会发现这些提示很有用

  • 决定不同类之间需要共享哪些数据
  • 确定应用程序的视图控制器。我这样说的意思是,视图控制器的数量,正如您的应用程序可能需要的那样。您还可以使用较少的视图控制器来完成任务
  • 若共享数据的大小相当大,那个么我建议您使用SQLite或CoreData,以适合您的需要为准
  • 欢迎具体查询。 祝你好运:)


    附加说明:尝试遵循苹果提供的设计模式,最重要的是在SDLC的初始阶段。

    从您的评论中可以看出,您已经编写了问题中提到的代码,现在,您正试图使代码可伸缩,并按照zoul的建议将其分离

    正如zoul所提到的,您的问题没有任何精确的解决方案,因为您的问题也不精确,或者说不具体

    不幸的是,正如你在评论中提到的,你不可能完全实现你想要实现的目标。但是,让我试着给你一些提示,在重构代码时你可能会发现这些提示很有用

  • 决定不同类之间需要共享哪些数据
  • 确定应用程序的视图控制器。我这样说的意思是,视图控制器的数量,正如您的应用程序可能需要的那样。您还可以使用较少的视图控制器来完成任务
  • 若共享数据的大小相当大,那个么我建议您使用SQLite或CoreData,以适合您的需要为准
  • 欢迎具体查询。 祝你好运:)


    附加说明:尝试遵循苹果提供的设计模式,最重要的是在SDLC的初始阶段。

    根据您在新的/不同的类中不时使用相同代码的问题,可重用性是关键。 但要正确地实现这一点,必须遵循“松耦合和高内聚”原则。 本质上,您需要创建每个子视图,就像组件本身一样,它执行特定的任务,并且不知道或不依赖于外部因素,如其父级等。 最后,我觉得您在尝试恢复代码时面临的主要问题是,您正在使用IB将函数连接到UI事件。 我建议使用目标和选择器属性进行连接,因为这将简化可恢复性,并使代码保持谨慎和干净


    您可以在这里阅读更多关于耦合和内聚的内容

    关于在新的/不同的类中不时使用相同代码的问题,可重用性是关键。 但要正确地实现这一点,必须遵循“松耦合和高内聚”原则。 本质上,您需要创建每个子视图,就像组件本身一样,它执行特定的任务,并且不知道或不依赖于外部因素,如其父级等。 最后,我觉得您在尝试恢复代码时面临的主要问题是,您正在使用IB将函数连接到UI事件。 我建议使用目标和选择器