Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 字符到NSString ObjC NSString*filePath=[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@“myFile”]; NSData*字节=[[NSData alloc]initWithContentsOfFile:filePath]; NSU整数len=[字节长度]; 字节*字节数据=(字节*)malloc(len); memcpy(字节数据,[字节],len); NSMutableString*fileContents=[NSMutableString alloc]init]; 对于(int i=0;i_Ios_Objective C_Char - Fatal编程技术网

Ios 字符到NSString ObjC NSString*filePath=[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@“myFile”]; NSData*字节=[[NSData alloc]initWithContentsOfFile:filePath]; NSU整数len=[字节长度]; 字节*字节数据=(字节*)malloc(len); memcpy(字节数据,[字节],len); NSMutableString*fileContents=[NSMutableString alloc]init]; 对于(int i=0;i

Ios 字符到NSString ObjC NSString*filePath=[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@“myFile”]; NSData*字节=[[NSData alloc]initWithContentsOfFile:filePath]; NSU整数len=[字节长度]; 字节*字节数据=(字节*)malloc(len); memcpy(字节数据,[字节],len); NSMutableString*fileContents=[NSMutableString alloc]init]; 对于(int i=0;i,ios,objective-c,char,Ios,Objective C,Char,在char curChar=byteData[i]之后放置一个断点,我看到了这一点: 如何将图像(\x02、\xd0等)中显示的内容准确地附加到fileContents中?目前我得到的都是像Ð 关于如何将char转换为NSString,我已经看到了很多问题,但没有任何问题符合我的要求…使用不同的格式: NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myFile

char curChar=byteData[i]
之后放置一个断点,我看到了这一点:
如何将图像(\x02、\xd0等)中显示的内容准确地附加到
fileContents
中?目前我得到的都是像Ð

关于如何将char转换为NSString,我已经看到了很多问题,但没有任何问题符合我的要求…

使用不同的格式:

NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myFile"];
NSData *bytes = [[NSData alloc] initWithContentsOfFile:filePath];
NSUInteger len = [bytes length];    
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [bytes bytes], len);
NSMutableString *fileContents = [NSMutableString alloc] init];
for (int i = 0; i < len; i++) {
    char curChar = byteData[i];
    [fileContents appendString:[NSString stringWithFormat:@"%c", curChar]];
}
编辑:要保存键入内容,您可以使用
appendFormat:
(正如现在从Nikolai Ruhe删除的答案中所指出的)。

如果您的意思是想要反斜杠-x-0-2,请参阅@特洛伊木马的答案。如果您的意思是想要“值为2的角色”,请继续阅读

文件的编码是什么?谈论字符串时,不能不考虑其编码。如果它是“一个字节字符串”,那么它就不是一个
NSString
;这是一个
NSData
,应该这样处理

一旦知道了编码,就不需要执行
NSData
步骤。只需使用
[NSString stringWithContentsOfFile:encoding:error:

[fileContents appendString:[NSString stringWithFormat:@"\\x%02x", (unsigned)curChar]];