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 に渡すことができます。これは、辞書の場合と同じプロセスです。辞書に必要です。A が必要なデータを事前に正確に把握していない場合、または A が何らかの方法で C の動作をカスタマイズできるようにしたい場合は、委譲への切り替えを検討してください。

于 2012-07-20T18:54:04.903 に答える
1

私はそれをinitに渡します。または、クラス「A」の種類によって異なります。それをシングルトンにするか、解析された辞書をシングルトンに渡してから、「C」内から直接参照することができます。

于 2012-07-20T18:54:36.050 に答える