ResKnife/Cocoa/Classes/SizeFormatter.m

46 lines
850 B
Objective-C

#import "SizeFormatter.h"
@implementation SizeFormatter
- (void)awakeFromNib
{
[self setFormat:@"#,##0.0"];
[self setLocalizesFormat:YES];
[self setAllowsFloats:YES];
}
- (NSString *)stringForObjectValue:(id)obj
{
NSMutableString *string = [NSMutableString string];
float value = [obj floatValue];
int power = 0;
while( value >= 1024 /*&& power <= 30*/ )
{
power += 10; // 10 == KB, 20 == MB, 30+ == GB
value /= 1024;
}
switch( power )
{
case 0:
[string appendFormat:NSLocalizedString(@"%.0f", nil), value];
break;
case 10:
[string appendFormat:NSLocalizedString(@"%.1f KB", nil), value];
break;
case 20:
[string appendFormat:NSLocalizedString(@"%.1f MB", nil), value];
break;
default:
[string appendFormat:NSLocalizedString(@"%.1f GB", nil), value];
break;
}
return string;
}
@end