Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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
Html 未保存到文档目录的url的编码NSData_Html_Ios_Uiwebview_Nsdocumentdirectory - Fatal编程技术网

Html 未保存到文档目录的url的编码NSData

Html 未保存到文档目录的url的编码NSData,html,ios,uiwebview,nsdocumentdirectory,Html,Ios,Uiwebview,Nsdocumentdirectory,我试图在iPhone的documents目录中本地保存一个html页面,以便在手机处于脱机状态时加载该页面 我的问题是,当我直接调用NSData对象以写入文件时,所有原始数据都保存在documents目录中的一个文件中 但一旦我使用编码将NSData转换为NSString,它就会停止在documents目录中写入文件。但是当我打印我的内容对象时,它会注销正确的数据。我只想把它保存到一个文件中 NSURL *url = [NSURL URLWithString:@"http://anyurl"];

我试图在iPhone的documents目录中本地保存一个html页面,以便在手机处于脱机状态时加载该页面

我的问题是,当我直接调用NSData对象以写入文件时,所有原始数据都保存在documents目录中的一个文件中

但一旦我使用编码将NSData转换为NSString,它就会停止在documents目录中写入文件。但是当我打印我的内容对象时,它会注销正确的数据。我只想把它保存到一个文件中

NSURL *url = [NSURL URLWithString:@"http://anyurl"];
NSData *urlHtmlData = [NSData dataWithContentsOfURL:url];    

NSString *myString = [[NSString alloc]initWithData:urlHtmlData encoding:NSUTF8StringEncoding];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"index.html"];
[myString writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];
是什么原因导致内容停止写入我的文件

或者,如果有人找到了更好的解决方案来查看脱机网页,而不是将其保存到文档目录中


谢谢

这可能有一些问题。第一:不要使用
stringWithFormat:
来附加路径组件。NSString有一个方法:

NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"index.html"];
第二:NSStringEncodingConversionLowlossy是未为
writeToFile:
定义的枚举的一部分,因此通过使用它,您实际上是在指定
NSASCIIStringEncoding
,而没有意识到它。在我看来,只需使用
NSUTF8StringEncoding
即可


另外,
NSString*content=[[NSString alloc]initWithFormat:@“%@”,myString]除了复制myString之外,什么都不做。删除该行,只需使用
[myString writeToFile:…

是否已转储“内容”以查看其是否包含所有数据?这是无用的:
[[NSString alloc]initWithFormat:@“%@”,myString];
(以及
错误:nil
可以隐藏许多问题。)请注意,您的问题与URL无关,也可能与NSData无关。这些不应在标题中提及。直接编写NSData应该会产生基本相同的结果。