从xcode for iphone应用程序中的字符串获取ascii码

从xcode for iphone应用程序中的字符串获取ascii码,iphone,ios,ipad,casting,ascii,Iphone,Ios,Ipad,Casting,Ascii,嘿,只是一些关于编写我的第一个ios应用程序的简单问题。我一直在搜索这里的问题,但它们似乎都解决了比我更高级的问题,所以我感到困惑 (1) 我所要做的就是将字符串转换为表示ASCII码的整数数组。换句话说,我想转换: "This is some string. It has spaces, punctuation, AND capitals." 一个包含62个整数的数组 (2) 我如何从NSArray回到一个字符串 (3) 此外,这些操作在内存或计算时间方面是否昂贵?如果我们必须在每次迭代或其

嘿,只是一些关于编写我的第一个ios应用程序的简单问题。我一直在搜索这里的问题,但它们似乎都解决了比我更高级的问题,所以我感到困惑

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

"This is some string. It has spaces, punctuation, AND capitals."
一个包含62个整数的数组

(2) 我如何从NSArray回到一个字符串

(3) 此外,这些操作在内存或计算时间方面是否昂贵?如果我们必须在每次迭代或其他时候创建一个新变量,这似乎是可能的

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


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

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的定义,则它是一个无符号的短字符。

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的定义,它是一个无符号的短字符。

如果您想将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]]];
}

无符号len=[字符串长度];
NSMUTABLEARRY arr=[NSMUTABLEARRY阵列容量:len];
for(无符号i=0;i
2) 要返回到NSString,需要使用MSMutableString并将每个字节附加到NSMutableString

在说了这些之后,如果你能避免的话,我建议你不要使用这种方法

更好的方法是使用@EmilioPelaez的答案。与迭代和压缩字符串相比,从内存缓冲区返回NSString既简单又便宜


NSString*stringFromMemory=[[NSString alloc]initWithBytes:缓冲区长度:len编码:NSASCIIStringEncoding];

如果您想将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]]];
}

无符号len=[字符串长度];
NSMUTABLEARRY arr=[NSMUTABLEARRY阵列容量:len];
for(无符号i=0;i
2) 要返回到NSString,需要使用MSMutableString并将每个字节附加到NSMutableString

在说了这些之后,如果你能避免的话,我建议你不要使用这种方法

更好的方法是使用@EmilioPelaez的答案。与迭代和压缩字符串相比,从内存缓冲区返回NSString既简单又便宜


NSString*stringFromMemory=[[NSString alloc]initWithBytes:缓冲区长度:len编码:NSASCIIStringEncoding];

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


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