从xcode中的字符串获取ascii代码,用于iphone app

时间:2012-02-06 22:13:04

标签: iphone ios ipad casting ascii

关于编写我的第一个ios应用程序,只有几个快速的noob问题。我一直在搜索这里的问题,但他们似乎都解决了比我更先进的问题所以我很困惑。

(1)我想做的就是将一个字符串变成一个表示ASCII码的整数数组。换句话说,我想转换:

"This is some string. It has spaces, punctuation, AND capitals."

进入一个包含62个整数的数组。

(2)如何从NSArray返回字符串?

(3)此外,这些昂贵的操作在内存或计算时间方面?似乎我们必须在每次迭代或其他事情上创建一个新变量。

我知道如何声明所有变量,我假设我在字符串的长度上运行循环,并且在每次迭代时,我以某种方式获取字符并将其转换为数字,并调用内置命令。

感谢您提供的任何帮助或链接到可能有用的帖子!

3 个答案:

答案 0 :(得分:2)

如果要将ascii值存储在nsarray中,那将会很昂贵。 NSArray只能保存对象,因此您必须为每个ASCII值创建一个NSNumber:


unsigned len = [string length];
NSMutableArray arr = [NSMutableArray arrayWithCapacity:len];
for (unsigned i = 0; i < len; ++i) {
   [arr addObject:[NSNumber numberWithUnsignedShort:[string characterAtIndex:i]]];
}
2)返回NSString,您需要使用MSMutableString并将每个字节附加到NSMutableString。

说过我建议你不要使用这种方法,如果你能避免它。

更好的方法是使用@ EmilioPelaez的答案。从迭代和连接字符串开始,从内存缓冲区返回到NSString是简单而便宜的。


NSString * stringFromMemory = [[NSString alloc] initWithBytes:buffer length:len encoding: NSASCIIStringEncoding];

答案 1 :(得分:1)

我最终使用了我在这里找到的语法。谢谢你的帮助

How to convert ASCII value to a character in Objective-C?

答案 2 :(得分:0)

NSString有一个获取数组中字符的方法:

NSString *string = "This is some string. It has spaces, punctuation, AND capitals.";

unichar *buffer = malloc(sizeof(unichar) * [string lenght]);

[string getCharacters:buffer range:NSMakeRange(0, [string length])];

如果你检查unichar的定义,它是一个未签名的短片。