2012-03-07 11 views
0

コアテキストを使用しているiOS向けのプロジェクトを手伝っています。アプリの一部のユーザーは、テキストがアプリ内で時折見つからないと報告しています。これは、バックグラウンドアプリと一緒にアプリをシャットダウンすることによって解決できるので、これは多少のメモリ関連です。コアテキストで結果が生成されないことがあります[iOS]

私はアプリケーションの使用をシミュレートするコードをいくつか作ったので、アプリケーションが "実行"し、ビューコントローラ間をランダムに移動したり、テキストフィールドをスクロールしたりして、この問題が通常どおりに発生するかどうかを追跡します。

私はコアテキストの使用に関連していくつかのメモリリークを発見しましたが、計測器によれば、メモリの損失量は非常に少ないです。しかし、シミュレーションが約20分間実行されていると、メモリ警告のためにアプリケーションがosによってシャットダウンされます。

私はこのメモリリークを修正しようとしていますが、自分では再現できないため、メインバグ(テキスト不足)を修正できないという問題があります。

私の最終的な質問は、誰かがコアテキストを使用している間、iOSのテキストが欠落していることを経験しましたか?それは妥当と思われますか?もしそうなら、これはiOSの特定のバージョンにのみ関連していますか?

私は私を助けることができる任意の答えに感謝します!

答えて

1

UIViewControllerは、アプリケーションがメモリ不足のときにシステムが呼び出すdidReceiveMemoryWarningを実装することがあります。フレームワーククラスは、コアテキストとして、これを実装し、それに従ってメモリを節約するように動作します。そのため、あなたのコアテキストオブジェクトは、あなたのアプリがリソースを空にしてコンテンツを空白にすることさえできるようにして、低mem状態を解決するのを助けることを目的とする可能性があります。最初に修正するすべてアプリでメモリリークが発生する

一方、すべてのバグを再現できない場合、修正することは非常に難しいです。問題がメモリ不足であると思われる場合は、アプリケーションに膨大な量のメモリを割り当てることで、このエラーをシミュレートして、誤った動作をそのように再現できることを願ってください。

+0

お返事ありがとうございます。むしろ奇妙だと思います。これらのリークが原因で一部のユーザーに問題が発生した場合、アプリケーションがクラッシュすることはありませんが(テキストは空白ですが)、私にとっては(空白のテキストは表示されません)助言がありますか? – Jonas

+0

私はiOSのメモリ管理の仕組みを正確にはわかりませんが、そのようなシナリオを想像することができます: 1)あなたのアプリは「あまりにも多くの」メモリを消費しています。 OSはあなたのアプリ/ UIViewControllerに通知を送信する 2)fwのUIViewControllerは、UIリソース(空白のテキストビュー)を解放するなどのmemフットプリントを減らす 3)まだメモリを多量に消費する4)他のアプリケーションがない場合OSはあなたのアプリを稼働させたままにすることもできます 5)メモリが必要な他のアプリがある場合、OSはより根本的なステップを踏んでプロセスを終了させることができます – MrTJ

+0

それは状況によって異なります。メモリ警告とキル信号の間のOSの柔軟性、最初の警告後にどれだけのメモリを解放するかなどです。 – MrTJ

関連する問題