我需要设置一个从001开始而不是仅仅1
的整数int iNumber = 001;
NSLog(@"%d",iNumber); // this is logging 1 instead of 001
有没有办法让它成为001?
[增订]
我需要这个,因为我正在从NSUserDefaults创建一个NSMutableArray,之后我使用NSSortDescriptor对数组进行排序。问题是因为我无法将int设置为从001开始排序的数组,如0,10,11,12,1,2,3,4,5,6,7,8,9。
更多代码解释
NSString *name = @"Name";
NSUserDefaults *MainArray = [NSUserDefaults standardUserDefaults];
NSString *Temp = [NSString stringWithFormat:@"%@%d", name,MainNumber];
[MainArray setObject:@"test" forKey:Temp];
[MainArray synchronize];
NSLog(@"%@",Temp);
MainNumber++;
上面的代码会像这样保存:Name1,Name2,Name3 ....
我需要它是Name001,Name002,Name003 .......
提前谢谢你:)
答案 0 :(得分:3)
使用%03d格式说明符,例如
NSString *theString = [NSString stringWithFormat: @"%@%03d",name,MainNumber];
NSLog(@"%03d", iNumber );// can also use in nsstring stringWithFormat
Objective-C方式,
NSNumberFormatter * numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setPaddingPosition:NSNumberFormatterPadBeforePrefix];
[numberFormatter setPaddingCharacter:@"0"];
[numberFormatter setMinimumIntegerDigits:10];
NSNumber * number = [NSNumber numberWithInt:1];
NSString * theString = [numberFormatter stringFromNumber:number];
NSLog(@"%@", theString);
现在你的要求:
NSString *name = @"Name";
NSUserDefaults *MainArray = [NSUserDefaults standardUserDefaults];
NSString *Temp = [NSString stringWithFormat:@"%@%03d", name,MainNumber];
[MainArray setObject:@"test" forKey:Temp];
[MainArray synchronize];
NSLog(@"%@",Temp);
MainNumber++;
答案 1 :(得分:0)
你从太低的级别攻击问题。要创建排序描述符,在字符串@"10"
,@"2"
,@"3"
等之后对字符串@"4"
进行排序,请告诉它使用localizedStandardCompare:
比较字符串,
只要文件名或其他字符串出现在适合类似Finder的排序的列表和表格中,就应该使用。
[NSSortDescriptor sortDescriptorWithKey:theKey
ascending:YES
selector:@selector(localizedStandardCompare:)];
答案 2 :(得分:-3)
你可以使用' float'
float *float = 001;
这个可能需要调整,因为我在iPad上,所以我没有Xcode来验证......