1

私が現在取り組んでいるプロジェクトでは、(いくつかのサブクラスの)UIViewControllerオブジェクトがたくさん作成されて使用されています。UIViewControllerそして、それが多くの問題を引き起こしていたと私を信じてください。そして私はそれに取り組んでいます(一種のリファクタリング)。

私が見るように、ほとんどの(それらの)オブジェクトは一度だけ初期化を必要とし、複数回使用されました。これからこのプロジェクトに取り組んでいるので(また、プロジェクトの期間が長いので)、UIViewControllerサブクラスオブジェクトのそれぞれが一度に1つだけ生きていることをどのように確認できますか。

私はすべてのUIViewControllersシングルトンを作るべきかどうか疑問です。もしそうなら、どのようにそれを実装する必要があります。意味; すべてのオブジェクトをその中 applicationDidFinishedLaunching:WithOptionsまたはどこで初期化する必要がありますか?

もう1つの質問は次のとおりです:(私が思うに、真実ではないかもしれません)UIViewControllerプロジェクト内のすべてをシングルトンにする必要がありますか?

4

2 に答える 2

1

プロジェクト内のすべてのUIViewControllerオブジェクトが1回だけ作成されるようにする場合は、シングルトンのみが使用されます。また、applicationDidFinishLaunchingでそれらを初期化する必要はありません。どこでも(通常は必要な場所で)初期化できます。

シングルトンを適切に作成するためのリンクに移動します:http://cocoasamurai.blogspot.in/2011/04/singletons-your-doing-them-wrong.html

ソース:UIViewControllerをシングルトンにしますか?

于 2012-06-21T07:55:04.917 に答える
0

それらを各サブクラスの1つのオブジェクトのみにしたい場合は、それらをシングルトンにすることは悪い考えではありません。

シングルトンにした場合は、初期化せずに、applicationDidFinishedLaunching:WithOptions必要に応じてすぐに初期化してください(レイジー初期化の詳細を参照してください)。

ただし、各webViewをAppdelegateのプロパティにして、必要なときにいつでもappDelegateから取得できるようにすることをお勧めします。

于 2012-06-21T07:54:30.800 に答える