获取错误的ipad内存?

时间:2012-06-22 11:17:04

标签: iphone xcode memory

我从以下方法获得可用内存:

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 AND在设备上显示的设备内存= 8.4 GB

大约700 MB的差异。为什么会这样?任何建议。

我用来查看设备上设备内存的路径如下。 转到: - 设置 - >一般 - >关于 - >可用

1 个答案:

答案 0 :(得分:2)

您的计算不准确函数返回大小(以字节为单位),因此假设返回值为9139650391,您需要将其除以bu (1024*1024*1024) = 1073741824

所以9139650391/1073741824等于大约8.5 GB而不是9.14 GB

关于100 MB的差异,仍然存在差异,但不会大到700 MB