1

将来インスタンス化される場合とされない場合があるUIViewControllerというオブジェクトとメソッド名を送信する必要がある状況にあります。問題をもう少し面白くするために、2つまたは3つの追加のUIViewControllerがプッシュされた後、UIViewControllerがUINavigationControllerにプッシュされます。

これを行うための最良の方法は何でしょうか?醜いアプローチは、中間のコントローラーを介してメッセージパッケージ(オブジェクトとメソッド名)を中継することです。それは醜いです。

単にUINavigationControllerをサブクラス化し、オブジェクトとメソッド名をぶら下げますか?多分。次に、そのメッセージパックをいつクリアするかをどのように知ることができますか?

ただし、この場合、NSInvocationは非常に有望に見えます。何か考えはありますか?

いいえいいえいいえシングルトン、または外部構造体をお願いします。


編集:コメントをありがとう。

@ Akshay、私はそれについて考えました。質問は、メッセージパッケージ(オブジェクトとメソッド名)を特定のnavigationControllerの下の特定のオブジェクトに送信したい場合はどうなりますか?さらに、ターゲットオブジェクトがインスタンス化されていない場合は、後で使用するためにシングルトンをクリアする必要があります。しかし、それでは、いつ片付けるかをどうやって知るのでしょうか?シングルトンを使用するのは面倒です。

@ Praveen-K、NSNotifcationは、すでに存在する人に対してのみ機能します。生成されるオブジェクトにメッセージパッケージを送信したいと言いました。

@PragmaOnce、私と他の2人のチームメイトが現在アーキテクチャを設計しています。これが説明することを願っています。データセンターのシングルトンは使用しないでください。

@Sedate Alien、その通り!

@ 9dan、ご意見ありがとうございます。実際、NSClassFromString、NSSelectorFromString、performSelectorがあり、任意のオブジェクトをインスタンス化し、メッセージを送信して、任意の数のオブジェクトで任意のメソッドを実行できます。

問題は、そのメッセージを複数のオブジェクト(私の場合はUIViewController)にエレガントに送信する方法です。UIViewControllerを使用していて、現在のUIViewControllerの上にさらにいくつかのUIViewControllerをプッシュするとします。その後、特定のクラスのオブジェクトをインスタンス化し、オブジェクトを使用してメソッドを実行する場合としない場合があります。シングルトンを使用せずにこれを行うにはどうすればよいですか?これを美しく処理する方法が必要です。NSInvocationにはその能力があると思います。

4

0 に答える 0