1

我有一个类,称之为A将一些数据解析为NSDictionary. 该类有一个表格视图,当一个单元格被选中时,会实例化一个新类,我们称之为该类B。类B反过来实例化类C。我希望班级C接收NSDictionaryA.

代表会工作吗?即使C没有实例化类,它会起作用吗?如果这是真的而且它真的不是,我应该在方法中传递来自A--> B-->的数据吗?Objective-C 中有更好的消息传递方法吗?Cinit

4

2 回答 2

2

我应该在 init 方法中从 A-->B-->C 传递数据吗?

我认为这是最好的计划。

A 真的不必担心 B 如何做它所做的事情。B 使用 C 的事实与 A 无关。A 需要知道的是,B 需要字典才能做到这一点。

碰巧的是,B 并不太关心字典,但字典应该是 B 的工作描述的一部分,类似于:获取给你的数据并以某种方式显示它。如果 B 通过将字典直接传递给 C 来处理字典,那很好——这不是 A 应该关心的事情。

可以对代表做同样的事情。A 可以给 B 一个对自身作为数据源的引用,而 B 最终可以将其传递给 C。这与使用字典的过程相同,因此如果您可以将 C 中的所有内容都放入,那么这样做并没有真正的优势需要进字典。如果 A 事先不知道确切需要什么数据,或者当您希望 A 能够以某种方式自定义 C 的行为时,您可能会考虑切换到委托。

于 2012-07-20T18:54:04.903 回答
1

我会通过 init 传递它。或者取决于什么样的“A”类。您可以将其设为单例,或将解析后的字典传递给单例,然后直接从“C”中引用它。

于 2012-07-20T18:54:36.050 回答