メモリ警告をトリガする最も簡単な方法は何ですか?メモリ警告をトリガする方法
答えて
[[NSNotificationCenter defaultCenter] postNotificationName:
@"UIApplicationMemoryWarningNotification" object:[UIApplication sharedApplication]];
私のために働かない –
使用UIApplicationDidReceiveMemoryWarningNotification –
シミュレータでは、[ハードウェア]に移動し、[メモリの警告をシミュレート]を選択できます。
あなたが本当のiOSデバイス上でこれを実行しようとしている場合、this blog postは、コード内のメモリの警告を送信する方法について説明します。シミュレータで
、あなたは、デバイスから1 ...
をシミュレートすることができます、あなたは(例えば、malloc
経由)、メモリを大量に割り当てたいことがあります。 手順を実行する必要があります。そうしないと、メモリ警告なしにアプリケーションがクラッシュすることがあります。私のアプリデリゲートで次に
- (void) simulateMemoryWarning:(UITapGestureRecognizer *)gesture {
[[NSNotificationCenter defaultCenter] postNotificationName:TriggerManualMemoryWarningNotification object:nil];
}
:私は、このようなこれをトリガ私のUIの特定の領域にトリプルクリックなど、デバッグモードで私のアプリに隠された何かを置くのが好き
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveManualMemoryWarning:) name:TriggerManualMemoryWarningNotification object:nil];
と
- (void) didReceiveManualMemoryWarning:(NSNotification *)notification {
#ifdef DEBUG
SEL memoryWarningSel = @selector(_performMemoryWarning);
if ([[UIApplication sharedApplication] respondsToSelector:memoryWarningSel]) {
[[UIApplication sharedApplication] performSelector:memoryWarningSel];
}else {
NSLog(@"%@",@"Whoops UIApplication no loger responds to -_performMemoryWarning");
}
#else
NSLog(@"%@",@"Warning: performFakeMemoryWarning called on a non debug build");
#endif
}
ありがとう!私は振りジェスチャーの通知を追加し、それは完全に動作します – akaDuality
シミュレータのメニューからHardware/Simulate Memory Warningを試しましたか? – dasblinkenlight