我有一个类,称之为A
,它在NSDictionary
中解析一些数据。该类有一个表视图,当选择一个单元格时,一个新类实例化,让我们调用该类B
。类B
依次实例化类C
。我希望课程C
能够接收NSDictionary
中创建的A
。
代表们会工作吗?即使没有实例化类C
,它会工作吗?如果这是真的,但事实并非如此,我应该在A
方法中传递来自B
- > C
- > init
的数据吗? Objective-C中有更好的消息传递方法吗?
答案 0 :(得分:2)
我应该在init方法中传递A - > B - > C中的数据吗?
我认为这是最好的计划。
真的不应该担心B是如何做的。 B使用C的事实与A的业务无关。 A需要知道的是B需要字典才能做到这一点。
实际上,B并不关心字典,但字典应该是B的工作描述的一部分,这类似于:获取您给出的数据并以某种方式显示它。 如果B通过将字典直接传递给C处理字典,那很好 - 不是A应该关心的。
你可以与委托做同样的事情。 A可以给B一个自己作为数据源的引用,B最终可以将它传递给C.这与你对字典的过程相同,所以如果你能把所有的东西放到C那里就没有真正的优势需要进入字典。如果A事先并不确切知道需要什么数据,或者您希望A能够以某种方式自定义C的行为,您可以考虑切换到委派。
答案 1 :(得分:1)
我会把它传递给init。或者取决于“A”类是什么类型。您可以将其设为单例,或将解析后的字典传递给单例,然后直接从“C”中引用它。