1
Есть ли у кого-нибудь процедура для перевода результата 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;
}
Это сладкое! Спасибо. Я бы никогда не придумал что-то настолько элегантное. –
Эй, я новичок в объективе-с, и мне было интересно, как я могу зарегистрировать этот NSString. NSLog (@ "% @", prettyBytes); не работает 'Format указывает тип 'id', но аргумент имеет тип 'NSString * (*) (uint64_t)''. – iDev
Вы отправляете эту функцию самостоятельно. Вам нужно называть это чем-то ... 'NSLog (@"% @ ", prettyBytes (someNumberOfBytes))' –