2012-08-28 126 views
29

我想一個隨機整型數字轉換在NSString然後分配的NSString另一NSString但它崩潰INT轉換成的NSString

我做了以下

int mynumber =(arc4random() % 1000); 

unique = [NSString stringWithFormat:@"%d",mynumber]; 

    NSLog(unique) 

    NSString*test=unique; 

它使崩潰的應用程序當我寫最後一行時;

它還打印值,當我nslog unique字符串。

+0

參見:[http://stackoverflow.com/questions/3574632] [1]:http://stackoverflow.com/questions/3574632/how-to-convert-an-int-to-nsstring –

回答

90

如果你想爲int更改爲字符串

NSString *strFromInt = [NSString stringWithFormat:@"%d",yourintvalue]; 
1
NSString *anotherStr; 
int myNumber = (arc4random() % 1000); 
NSString *stringNum = [NSString stringWithFormat:@"%i", myNumber]; 
anotherStr = stringNum; //assign NSString to NSString 
// Here you can convert NSString to Int if you want. 
NSLog(@"My number as NSString = %@", stringNum); 
int getNumFromString = [stringNum intValue]; 

NSLog(@"My number from NSString = %i", getNumFromString); 
0

您已經錯誤地使用了NSLog語句。它應該像下面一樣使用。

NSLog(@"%@",unique);

47

這也適用於:

NSString *str = [@(number) stringValue]; 

或者,如果你喜歡點符號:

NSString *str = @(number).stringValue; 

Thi s將使用表達式裝箱語法@(...)將原始值裝箱到NSNumber,然後使用其'stringValue方法將其轉換爲NSString。這也適用於其他原始值(NSInteger,float,double,long,...)。

+0

與'stringWithFormat'語法相比是否有優勢? – jerik

+2

這裏的好處是,這適用於任何基元類型,您不需要顯式設置格式參數。 此外,我覺得這更簡潔明瞭,但這是一個品味問題。 這成爲可能與表達拳擊語法,在推出的XCode 4.4 – d4n3

+3

這可能是更現代:'@(數字).stringValue' –