Intereting Posts
Каков наилучший способ вызова дополнительных функций делегата в Swift Как я могу показать временную метку с yyyy, mm, dd, hh, mm и добавить 1 час с момента нажатия кнопки? Объектив-C, Xcode, iPhone Google FCM Server: 200, но уведомление не отправлено на телефон WebSQL – сохранение и извлечение базы данных с SD-карты – PhoneGap iOS Динамическое добавление розеток в MonoTouch Как удалить несколько кнопок, которые я создал с помощью цикла? Как передать информацию с экземпляром NSURLConnection, чтобы я мог получить его из connectionDidFinishLoading Странное поведение с разделителем TableView при использовании действий TableFooterView и строк iOS8.1 Core-Data Легкая + тяжелая миграция В чем разница между RACSequence и RACSignal Как реализовать MVC в Swift? фатальная ошибка: init (coder :) не был реализован Xcode 7 iOS 9 Разница между «(NSSet *) касается» и «event.allTouches» в «touchhesBegan: withEvent:» как заставить страницу скручиваться, как в Apple Maps на iOS 6? Воспроизведение голоса из серверного потока nsdata с использованием AudioUnit IOS

NSFileSystemFreeSize: перевод результата в удобное отображение mb / gb?

Кто-нибудь имеет подпрограмму для перевода результата NSFileSystemFreeSize в удобную для пользователя строку mb / gb. Я думал, что у меня есть суть, но я получаю странные результаты.

- (NSString*)getFreeSpace { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSDictionary* fileAttributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:documentsDirectory error:NULL]; unsigned long long freeSpaceInBytes = [[fileAttributes objectForKey:NSFileSystemFreeSize] unsignedLongLongValue]; NSString * space = [NSString stringWithFormat:@"Free Space: %fll", freeSpaceInBytes /1024. / 1024. /1024.]; NSLog(@"freeSpaceInBytes %llull %fll", freeSpaceInBytes, freeSpaceInBytes /1024. / 1024. /1024.); return space; } 

 static NSString* prettyBytes(uint64_t numBytes) { uint64_t const scale = 1024; char const * abbrevs[] = { "EB", "PB", "TB", "GB", "MB", "KB", "Bytes" }; size_t numAbbrevs = sizeof(abbrevs) / sizeof(abbrevs[0]); uint64_t maximum = powl(scale, numAbbrevs-1); for (size_t i = 0; i < numAbbrevs-1; ++i) { if (numBytes > maximum) { return [NSString stringWithFormat:@"%.4f %s", numBytes / (double)maximum, abbrevs[i]]; } maximum /= scale; } return [NSString stringWithFormat:@"%u Bytes", (unsigned)numBytes]; }