2012-06-20 113 views
-1

我需要設置一個整數從001而不是僅1有沒有一種方法來設置一個int爲001

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++; 

上面的代碼將節省這樣的:1,名稱,NAME3 ....

我需要它是Name001,Name002,Name003 .......

感謝您提前:) :)

+0

請你爲什麼要這樣的行爲,或者正是你想要的擴大。整數術語「001 == 1」。 – blahdiblah

+0

@blahdiblah請檢查更新 – aLFaRSi

+2

您正在將_value_和_appearance_混淆。一個'int'有一個_value_可以用不同的方式顯示__。顯示值「1」的許多方法中的一些是:「001」,「0x1」,「1」,「10e0」。 'int i = 1;'將'i'的值設置爲「001」。 –

回答

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); 

現在您requiremnet:

NSString *name = @"Name"; 
NSUserDefaults *MainArray = [NSUserDefaults standardUserDefaults]; 
NSString *Temp = [NSString stringWithFormat:@"%@%03d", name,MainNumber]; 
[MainArray setObject:@"test" forKey:Temp]; 
[MainArray synchronize]; 
NSLog(@"%@",Temp); 
MainNumber++; 
+0

我真正需要的是設置整數爲001而不是日誌記錄結果:) – aLFaRSi

+0

您所做的只是創建一個值爲「001」的字符串。你可以簡單地做到這一點:「NSString * theString = [NSString stringWithFormat:@」001「];'。沒有冒犯,但你的代碼是非常過分的,而不是OP想要的。 – pasawaya

+0

NSString * theString = [NSString stringWithFormat:@「%03d」,iNumber]; –

-3

你可以使用一個 '浮動'

float *float = 001; 

可能需要調整爲我在我的iPad上,所以我沒有Xcode來驗證...

+5

我想知道你使用什麼編譯器來使代碼工作.. –

+1

/glares /我使用CR與gcc,它會生成一個*警告* – Sirens

0

你正在攻擊太低的問題。要創造一種描述符,將字符串@"2"@"3"@"4",等後面的字符串@"10"排序,告訴它使用localizedStandardCompare:比較字符串,其中

應該每當文件名或其他字符串中都被使用列表和表格,其中類似Finder的排序是適當的。

[NSSortDescriptor sortDescriptorWithKey:theKey 
           ascending:YES 
           selector:@selector(localizedStandardCompare:)]; 
相關問題