传递数据到委派

时间:2011-06-16 15:25:23

标签: objective-c cocoa model-view-controller delegates

我在控制器对象中有一堆插座需要传递另一个控制器。如果它只有2或3个值,我只是将它们作为参数传递给委托方法(不是直接将它们传递给出口,而是通过将值复制到变量)

然而,有不少。处理这个问题的最佳方法是什么?我看到三种方法:

  • 我可以创建一个包含所有这些属性的新对象并传递它。

  • 我可以在委托方法[self.delegate didClickDone:self]中传递控制器。这种方法的问题是:我是否可以从外面访问另一个控制器的插座?

  • 我可以按照第二个选项,但将每个商店的值复制到一个属性,并允许另一个控制器通过访问器方法访问它们。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

你总是被允许做自己允许的事情。但是,某些方法可能会阻止Apple接受Appstore的App。这不是这种情况;)

如果有很多值要通过,我会去

  • 数组如果包含的传递对象属于同一类型/种类
  • 如果值本质上是异构的,请使用数据类。与M.Fowler的Refactoring一样 - >介绍参数对象(第295页)。

正如您所建议的那样,脏的方式是将Outlets打开到除视图控制器本身之外的其他实例。防止其他类的八卦行为。