我在Objective C中传递参数时遇到问题。这里是我的情况:Objective C:实例变量作为参考
我有一个根控制器(主屏幕)。在它的视图中有一个ScrollView,它包含3个视图(接下来的3个控制器)。您可以水平地滚动它,并且这些ScrollView中的3个视图正在改变。接下来,我有一个与某些硬件进行通信的对象。有一个会议和进出流。这个对象接收一些数据,我需要在视图中显示这些数据(根视图和滚动视图中的3个视图)。此外,根控制器和这3个控制器有时需要一些数据。
这意味着通信对象必须具有所有控制器的实例将它们直接发送数据。但控制器必须有通信对象的实例才能够请求数据。
我想是这样做的:根控制器及其子视图创建3个控制器(滚动型),并告诉他们。它还创建通信对象并将这3个控制器发送给这个对象(由ref)。并且还发送给通信对象的每个控制器实例。在这种情况下,通信对象可以直接向控制器发送数据,控制器也可以直接请求数据。
通常我用C#这样的参考参数传递的工作是没有问题的,但它似乎在目标C是不可能的。当我想发送引用时,它会创建一个副本并发送它,所以我有两个副本的对象,我不想要它。我想引用一个对象。我试图发送一个指针 - (UIViewController **)controller
,但它似乎不工作。
你能告诉我应该怎么解决这个问题?接下来的想法是,根控制器创建3个子控制器和一个通信对象。该通信对象将向根控制器发送消息,并将该消息转发给右侧控制器。子控制器将向根控制器发送消息,并将其转发给通信对象。
你绝对可以**使用指针**效仿引用。在什么意义上“不起作用”? – 2013-08-27 11:26:28
显示创建不需要的副本的一些代码。假设你知道你在做什么,应该没有问题来处理指针。无论如何,对象的引用基本上都是一个指针。不过,我强烈建议熟悉委托模式并应用它。 –