zek*_*kel 8 math cocoa objective-c
Apple 改变了他们在Max OS X 10.6中计算KB,MB和GB的方式.他们使用1000而不是1024.
我的问题是如何在我的代码中处理这个问题?我正在尝试释放空间量,所以我得到了字节数NSFileManager
.当我向用户显示时,我需要根据它们是10.5还是10.6将其转换为GB.
是否有GB大小的内置常量?(或者无论你怎么称呼1024号码?)定义自己的数字似乎有点傻.
## I'm currently doing something like this.
if (running10_6) {
double gbConst = 1000 * 1000 * 1000;
} else {
double gbConst = 1024 * 1024 * 1024;
}
NSDictionary *attr = [NSFM attributesOfFileSystemForPath:@"/" error:&error];
double bytes = [[attr objectForKey:NSFileSystemFreeSize] doubleValue];
double freeGB = bytes / gbConst;
Run Code Online (Sandbox Code Playgroud)
从OS X 10.8/iOS 6.0开始,新的NSByteCountFormatter类完全符合您的要求:
enum {
NSByteCountFormatterCountStyleFile = 0,
NSByteCountFormatterCountStyleMemory = 1,
NSByteCountFormatterCountStyleDecimal = 2,
NSByteCountFormatterCountStyleBinary = 3
};
Run Code Online (Sandbox Code Playgroud)
十进制/二进制是1000和1024.文件/内存是操作系统用于该度量的任何别名.
归档时间: |
|
查看次数: |
342 次 |
最近记录: |