2011-12-07 3 views
14

最近、問題が1つあります。私は画像キャッシュライブラリを使用していますが、うまくいきますが、最終的にはメモリの問題に遭遇し、アプリケーションはちょうど終了します(メモリが不足しているためです)。画像キャッシュライブラリからソースコードを読んだ後に、メモリ警告イベントが発生すると、キャッシュされたすべての画像が解放される(画像が巨大である)ことが判明しました。メモリ警告イベントをデバイスに手動で直接送信する方法はありますか?私はメモリ使用量を評価するためにxcode instrumentツールを使用しています。手動シミュレータでシミュレートすることができメモリ警告をiPhoneデバイスに手動で送信する方法はありますか?

答えて

14

Hardware -> Simulate Memory Warning 

また、プログラムでそれをシミュレートすることができます。

- (void)simulateMemoryWarning 
{ 
#if TARGET_IPHONE_SIMULATOR 
    #ifdef DEBUG 
    CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true); 
    #endif 
#endif 
} 

CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true); 
+0

http://stackoverflow.com/questions/2784892/simulate-memory-warnings-from-the-code-possibleドキュメント化されていないAPIについても同様です。 – tapi

14

メモリ警告がのUIApplicationのプライベートメソッドを呼び出すことによって製造することができます。それは、iOS 6.1で正常に動作して

[[UIApplication sharedApplication]performSelector:@selector(_performMemoryWarning)]; 

下回っ注:それ以外の場合は拒否されますが、iTunesにアプリを提出する前に、そのセレクタの呼び出しを削除します。

+1

Appleにアプリを提出する前にこれを削除することを忘れないでください。テストのために、あなたのアプリは拒否されます。 – Zubair

+1

これは、iOS 7のXcode 5では何もしません – daveMac

関連する問題