優れたコード プラクティスと MVC モデルに関する理論的な質問をしたいと思います。
この設計には、RootViewController とシングルトン クラスが含まれています。シングルトンは、アプリ全体で使用できるタイマー オブジェクトを持つコントローラーとして機能します。タイマー オブジェクトは UISwitch と NSTimer で構成され、どちらもシングルトン コントローラーによって所有されるため、必要に応じて UISwitch を新しい viewController に追加でき、アプリ全体でタイマー オブジェクトにアクセスできます。
RootViewController の画面を現在のタイマーのカウントで更新するために、シングルトンで RootViewController へのポインターを作成し、[singeltonOBject setDelegate:self] のように、RootViewController をそのポインターに設定しました。この設計を使用すると、タイマーが作動したときに RootViewController の UILabel にアクセスし、シングルトンから更新できます。通常のデリゲートを実装する時間がなかったので、そうすることにしました。
RootViewController は AppDelegate によって所有されており、シングルトン クラスは明らかに RootViewController によって所有されていないことに注意してください。したがって、保持サイクルはありません。
質問: シングルトンから RootViewController へのポインターを設定し、シングルトン コントローラーから UILable を更新することは、優れたコーディング プラクティスに違反していますか? 満たされていない基本原則はありますか?
ご回答有難うございます!