2011-01-09 7 views
0

iphoneの利用可能なメモリを検出することは可能ですか?アプリが実行されているときに、メモリが少ないかどうかによって再起動するように通知できますか?iphoneの利用可能なメモリの検出

+4

彼らはAirBus 380のためのソフトウェアを書いていません。 –

答えて

8

なぜユーザーに電話を強制的に再起動させたいのですか?それはひどい考えです。 アプリが一部のメモリを割り当てようとしたときにデバイスのメモリがいっぱいになると、あなたと必要なサービスがすべて残ってしまうまで、osはメモリから他のアプリをダンプします。そして、あなたはメモリ警告を受け取ります。どの時点であなたのアプリだけがあり、重要なサービスが実行されています。デバイスを再起動してもこれは修正されません。

+0

クールです。私は強制したくない。リマインダのメッセージを表示できると思った。 – jarryd

+0

これは私の経験と一致しません - OSを解放するよりも速くメモリを割り当てるか、それ以外の何かが間違っていますが、再起動後に20 MB以上を消費することがありますが、か否か。 –

+0

あなたがそのシナリオに遭遇しているなら、おそらくあなたは漏れています。リークツールを実行し、プラグを差し込んでください。 – BadPirate

0

私はあなたが探しているメモリは、RAMかディスクかはっきりしていません。しかし、以下のコードはあなたが探しているものを得るのに役立ちます。 NSString *を戻り値として無視します。彼らは簡単に印刷するためのものでした。 iPhoneで

- (NSString*) totalMemory 
{ 
    NSString* v; 
    v = [NSString stringWithFormat:@"%d", [[UIDevice currentDevice] totalMemory]]; 
    return v; 
} 


- (NSString*) userMemory 
{ 
    NSString* value; 
    value = [NSString stringWithFormat:@"%d", [[UIDevice currentDevice] userMemory]]; 
    return value; 
} 


- (NSString*) freeMemory 
{ 
    NSString* value; 
    value = [NSString stringWithFormat:@"%d", [UIDevice freeMemory]]; 
    return value; 
} 


- (NSString*) totalDiskSpace 
{ 
    NSNumber* totDiskSpace= [[UIDevice currentDevice] totalDiskSpace]; 
    NSString* value = [totDiskSpace stringValue]; 
    return value; 
} 


- (NSString*) freeDiskSpace 
{ 
    NSNumber* theFreeDiskSpace= [[UIDevice currentDevice] freeDiskSpace]; 
    NSString* value = [theFreeDiskSpace stringValue]; 
    return value; 
} 
+1

コードは正しいです。それが現実世界のアプリで有用であるという提案は間違っています。 – bbum

+0

cool。ありがとうbbum :-) – Viren

+0

素晴らしい情報、ありがとうViren – Fattie

2

あなたはメモリが不足している場合は、あなたのビューは、アプリケーションのためのより多くのメモリを解放するために必要なキャッシュをパージする機会を与えるであろう、-(void) UIViewController :didReceiveMemoryWarningを受け取ることになります。先験的に利用可能なメモリが十分にない場合は、起動を拒否する代わりに、これを行うのが最善の方法です。あなたのプロセスが割り当てることができる最大量のメモリを得ることができるかもしれませんが、そのメモリのいくつかはmallocとappフレームワークによって使用されるため、実際には利用可能なメモリ量を検出するのは難しいでしょう。

PS。ユーザーを強制的に再起動させるのは恐ろしいユーザーエクスペリエンスです。メモリ不足の場合、アプリケーションは自動的に終了されるため、強制的に再起動する必要はありません。

+0

Wait - "メモリ不足の場合、 「ユーザーを再起動させるような理由はない」と、矛盾しているようだ... –

関連する問題