Apple tiene changed how they calculate KB, MB, and GB in Max OS X 10.6. En lugar de usar 1024, usan 1000.¿Hay una constante de qué tan grande es un GB en Cocoa?
Mi pregunta es cómo lidiar con esto en mi código? Estoy tratando de liberar la cantidad de espacio, así que obtengo el número de bytes a través del NSFileManager
. Cuando voy a mostrar eso al usuario, necesito convertirlo en GB de manera diferente dependiendo de si están en 10.5 o 10.6.
¿Hay una constante incorporada para el tamaño de GB? (¿O lo que sea, llamarías al número 1024?) Parecía un poco tonto definir el mío.
## 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;
No necesita * mostrar el espacio libre en Gibibytes en un sistema Leopard. No hay nada que le impida usar unidades de Gigabytes (= 10^9 bytes) en todas las plataformas. Puedo apreciar el deseo de hacer coincidir el sistema host, pero me parece innecesario aquí. –
Le estoy mostrando al usuario cuánto espacio necesita para liberarme para que pueda hacer algo, por lo que sería bueno que coincida con su sistema. – zekel
Ah, está bien. Esa es una buena razón para querer hacerlo. –