将字符串转换为int-objective c

时间:2013-08-29 07:52:11

标签: iphone objective-c cocoa-touch nsstring int

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

我觉得这很奇怪,这不是在线或堆栈溢出。我确信我不是那个需要这个的人。

提前感谢您的帮助。

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;
}

2 个答案:

答案 0 :(得分:43)

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

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

答案 1 :(得分:5)

可能只是偏离主题,但要转换为ASCII,您可以使用:

[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]

或者在你的例子中:

return [text dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

这将返回一个NSData,如果这是你需要的,你可以迭代以获得ASCII的字符串表示(根据你的方法)。

使用这种方法的原因是因为NSString可以存储非ASCII字符,您当然可能会丢失详细信息,但启用allowLossyConversion标志将尝试克服此问题。根据{{​​3}}:

  

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