24

我一直无法弄清楚如何将 NSString 转换为 int。我正在尝试将 ASCII 转换为文本,但为此我需要将字符串转换为 int。

我觉得很奇怪,这不是在线或堆栈溢出的任何地方。我确定我不是需要这个的在线人。

提前感谢您的帮助。

PS如果这有帮助是我用来转换为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;
}
4

2 回答 2

57

要将字符串解析为整数,您应该这样做:

NSString *a = @"123abc";
NSInteger b = [a integerValue];
于 2013-08-29T07:54:38.407 回答
5

也许有点偏离主题,但要转换为 ASCII,您可以使用:

[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]

或者在您的示例中:

return [text dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

如果这是您需要的,这将返回一个 NSData ,您可以遍历它以获得 ASCII 的字符串表示形式(根据您的方法)。

使用这种方法的原因是因为 NSString 可以存储非 ASCII 字符,您当然可能会丢失细节,但启用 allowLossyConversion 标志将尝试克服这个问题。根据Apple 文档

例如,在将字符从 NSUnicodeStringEncoding 转换为 NSASCIIStringEncoding 时,字符 'Á' 变为 'A',失去了重音。

于 2013-08-29T08:02:43.560 回答