我正在尝试将旧式C ++程序转换为Objective-C。该程序需要256个可能的ASCII字符(每个字符8位)的数组。我正在尝试使用NSString
方法initWithBytes:length:encoding:
这样做。不幸的是,按如下所示进行编码时,它会崩溃(尽管会编译)。
NSString* charasstring[256];
unsigned char char00;
int temp00;
for (temp00 = 0; temp00 <= 255; ++temp00)
{
char00 = (unsigned char)temp00;
[charasstring[temp00] initWithBytes:&char00 length:1 encoding:NSASCIIStringEncoding];
}
我缺少什么?
最佳答案
首先,方法只是initWithBytes:length:encoding
,而不是标题中使用的NSString::initWithBytes
。我指出这一点仅仅是因为忘记从C ++中学到的所有知识是您获得Objective-C成功的第一步。 ;)
其次,您的代码表明您不了解Objective-C或使用Foundation API。
您不在任何地方分配NSString实例
您声明了256个NSString实例指针的数组,可能不是您想要的
正确编码的ASCII字符串不包括所有字节
我建议您开始here。
关于objective-c - 试图理解NSString::initWithBytes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1976501/