Apple ha changed how they calculate KB, MB, and GB in Max OS X 10.6. Invece di usare 1024, usano 1000.C'è una costante per quanto è grande un GB in Cocoa?
La mia domanda è come affrontare questo nel mio codice? Sto cercando di ottenere la quantità di spazio libero, quindi ottengo il numero di byte tramite NSFileManager
. Quando vado a visualizzarlo all'utente, devo trasformarlo in GB in modo diverso a seconda che si trovino su 10.5 o 10.6.
C'è una costante integrata per la dimensione GB? (O qualunque cosa si chiami il numero 1024?) Mi è sembrato un po 'sciocco definire il mio.
## 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;
Non * è necessario * per visualizzare lo spazio libero in Gibibytes su un sistema Leopard - non c'è nulla che impedisca di utilizzare le unità Gigabyte (= 10^9 byte) su tutte le piattaforme. Posso apprezzare il desiderio di abbinare il sistema host, ma mi sembra inutile qui. –
Sto mostrando all'utente quanto spazio hanno bisogno di liberare per poter fare qualcosa, quindi sarebbe bello averlo abbinato al loro sistema. – zekel
Ah, OK. Questa è una buona ragione per volerlo fare. –