2011-02-23 9 views
0

私はいくつかの共有物にシングルトンを使用しています。シミュレータでは、アプリがクラッシュすることがあります。クラッシュを追跡すると、私のシングルトンのプロパティが排除されたことが示されます。これらのクラッシュは、実際のデバイスで起こることはありません。シミュレータはメモリマネージメントを処理しますか? GCかもしれない?シミュレータ上のシングルトンと実際のデバイス上のシングルトン?

シングルトンをthis patternと一致するように変更しました。 Simulatorはクラッシュしませんが、実際のデバイスでのメモリ処理についてはわかりません。私はこの解決策が問題を引き起こすと考えています。

あなたはどう思いますか?

答えて

0

おそらく、最初の試行でシングルトンが間違っていた可能性があります。 Simulatorでのメモリ管理は、少なくとも原理的には、デバイスと同じように機能します。実際には、タイミングの問題やSimulatorに十分なメモリがあり、メモリの警告を送信しないためにいくつかの違いがあります。しかし、これらの違いは正しく書かれたシングルトンには影響しません。

リンクされたシングルトンコードは、スキムでうまく見えます。私の意見では、あなたはget rid of the singletons completelyに最善を尽くし、Interface Builderまたは依存関係注入を使ってアプリケーションを結ぶでしょう。

+0

ありがとうございました。シングルトンでさえもうまくいっていて、彼はいなくなってしまったのですが、彼はまだプロパティを移しているようです。問題の原因となるプロパティは、オブジェクトへのポインタです。それらを得ることは、それらを変更することは、シミュレータのクラッシュにocasionalリードする。もう一度何かを監督しているようです。:/ –

+0

私は[短いサンプル](http://sscce.org/)のコードがうまくいかないことを教えてください。シングルトンクラスのプロパティを間違っている可能性があります。 – zoul

関連する問題