有没有办法将int设置为001

时间:2012-06-20 02:53:13

标签: iphone objective-c xcode

我需要设置一个从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 .......

提前谢谢你:)

3 个答案:

答案 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来验证......