我试图取一个字符串(@“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 :(得分: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;
}
然而,这会向后传递你的字符串。