2013-08-29 142 views
9

我還沒有弄清楚如何將NSString轉換爲int。我試圖將ASCII轉換爲文本,但要做到這一點,我需要將一個字符串轉換爲一個int。將字符串轉換爲int-objective c

我覺得很奇怪,這不是在線或堆棧溢出。我確定我不是那個需要這個的在線人。

在此先感謝您的幫助。

P.S.如果這能幫助這裏是我使用轉換爲ASCII代碼:

+ (NSString *) decodeText:(NSString *)text { 
    NSArray * asciiCode = [text componentsSeparatedByString:@"|"]; 
    int i = 0; 
    NSMutableString *decoded; 

    while (i < ([asciiCode count]-1)) { 

     NSString *toCode = [asciiCode objectAtIndex:i]; 
     int codeInt = toCode; 
     NSString *decode = [NSString stringWithFormat:@"%c", codeInt]; 
     [decoded appendString:decode]; 

    } 

    return decoded; 
} 
+0

我看了很多問題,但找不到答案。這就是我問的原因。 – DonyorM

回答

32

爲了解析字符串爲整數,你應該做的:

NSString *a = @"123abc"; 
NSInteger b = [a integerValue]; 
+0

你也可以用int來做到這一點。感謝您的幫助。 – DonyorM

+0

gr8 ...享受編碼 –

5

分數可能偏離主題,但轉換爲ASCII你可以只使用:

[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] 

或者在你的榜樣:

return [text dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

這將返回一個NSData,如果這是您需要的,您可以遍歷該NSData以獲取ASCII的字符串表示形式(根據您的方法)。

使用這種方法的原因是因爲NSString的可以存儲非ASCII字符,你當然可能會失去細節,但啓用allowLossyConversion標誌將嘗試克服這一點。按照the Apple documentation

例如,在從NSUnicodeStringEncoding的字符轉換爲 NSASCIIStringEncoding,字符「A」變爲「A」,失去 口音。

+0

那麼我在哪裏添加我想要轉換的字符串? – DonyorM

+0

@DonyorM dataUsingEncoding ...是你在*字符串上調用*的方法。 (我會更新我的答案。) –

+0

謝謝,對不起一些函數以「NSString」開頭。大多數情況下,我是一個noob。 – DonyorM