0

私は以下の方法から利用可能なメモリを取得しています:

static void print_free_memory () {
float totalSpace = 0.0f;  
NSError *error = nil;  

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  

NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];  

if (dictionary) {  
    NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];  
    totalSpace = [fileSystemSizeInBytes floatValue];  
    NSLog(@"Total memory:%f",totalSpace);
    freeMemAvailable = [[dictionary objectForKey:NSFileSystemFreeSize] floatValue];
    NSLog(@"Free Memory:%f",freeMemAvailable);
} else {  
    NSLog(@"Error Obtaining File System Info: Domain = %@, Code = %@", [error domain], [error code]);  
}
}

上記のメソッドは、= 9139.650391 mb〜9.14 GBを返し、デバイスに表示されるデバイスメモリ上で= 8.4 GB

約700MBの違い。なんでそうなの?助言がありますか。

デバイス上のデバイスメモリを表示するために使用したパスは次のとおりです。移動:-[設定]->[一般]->[バージョン情報]->[利用可能]

4

1 に答える 1

2

あなたの計算は正確ではありません。関数はサイズをバイト単位で返します。したがって、返された値がbu =9139650391で割る必要があると仮定します。(1024*1024*1024)1073741824

したがって9139650391/1073741824、9.14 GB ではなく、約 8.5 GB に相当します。

100 MB の違いについては、まだ違いはありますが、700 MB ほど大きくはありません。

于 2012-06-22T11:24:00.493 に答える