2013-09-30 67 views
0

我想要一個字符串(@「12345」)和提取器每個單獨的字符並轉換爲它的十進制等效。將字符串轉換爲字符到整數

@ 「1」= 1 @ 「2」= 2 等

以下是我有這麼遠:

... 
[self ArrayOrder:@"1234"]; 
... 

-(void)ArrayOrder(Nsstring *)Directions 
{ 



    NSString *singleDirections = [[NSString alloc] init]; 

    //Loop Starts Here 

    *singleDirection = [[Directions characterAtIndex:x] intValue]; 

    //Loop ends here 


} 

我已經收到類型錯誤。

回答

0

您的代碼的問題是[Directions characterAtIndex:x]返回一個unichar,這是一個Unicode字符。

相反,你可以使用NSRange和子讓每個號碼出字符串的:

NSRange range; 
range.length = 1; 
for(int i = 0; i < Directions.length; i++) { 
    range.location = i; 
    NSString *s = [Directions substringWithRange:range]; 
    int value = [s integerValue]; 
    NSLog(@"value = %d", value); 
} 

另一種方法是使用/ 10% 10去從單獨的字符串中的每個號碼。如:

NSString* Directions = @"1234"; 
int value = [Directions intValue]; 
int single = 0; 
while(value > 0) { 
    single = value % 10; 
    NSLog(@"value is %d", single); 
    value /= 10; 
} 

然而,經過您的字符串倒退。