当前位置:  开发笔记 > 前端 > 正文

NSString stringWithContentsOfFile失败,似乎是错误的错误代码

如何解决《NSStringstringWithContentsOfFile失败,似乎是错误的错误代码》经验,为你挑选了2个好方法。

我正在尝试将文件加载到字符串中.这是我正在使用的代码:

NSError *error = nil;
NSString *fullPath = [[NSBundle mainBundle] pathForResource:filename 
                                                     ofType:@"html"];
NSString *text = [NSString stringWithContentsOfFile:fullPath 
                                           encoding:NSUTF8StringEncoding 
                                              error:&error];

当传入@"about"作为文件名时,它工作得非常好,显示代码有效.当传入@"eula"作为文件名时,它以"Cocoa error 258"失败,转换为NSFileReadInvalidFileNameError.但是,如果我交换文件的内容但保持名称相同,则另一个文件无法证明文件名没有任何问题,这与内容有关.

about文件是相当简单的HTML,但eula文件是由法律部门从Word导出的大量混乱.

有没有人知道HTML文件中可能导致引发此错误的任何内容?

非常感谢,

山姆



1> Eli..:

我只花了45分钟来解决这个问题,只是在我的情况下,解决方案是愚蠢的,问题略有不同.

我的资源目录中有一个名为Playlist.txt的文件.它装得很好.

该文件在XCode内的某一点进行了修改.

文件已正确停止加载,但错误与上述相同.但是,它从未被移动过,也没有改变它的编码类型.

我在XCode目录中的文件上做了一个命令-I(获取信息),它告诉我它是UTF-8(如预期的那样).

我尝试了"usedEncoding"阅读文件的方式,没有骰子.同样的错误,编码返回null.

最后,我从XCode中删除了文件,再次将其拖入,然后执行了全部清理.这解决了问题.

这不是第一次XCode神奇地缓存(错误)导致我浪费了数小时的浪费时间.如果您有这样的错误没有意义,请尝试删除并替换文件并清除所有目标.



2> Peter N Lewi..:

错误几乎肯定是你的文件不是UTF-8,但是你是对的,这听起来像是错误报告中的错误.

用BBEdit(或免费的TextWrangler)打开eula文件,看看它使用的是什么编码.将编码更改为UTF-8并保存.对两个文件进行差异以查看出现的差异.用新的文件替换原始文件(修复任何毛刺).

如果这样可以解决问题,那么请使用Apple Bug Reporter报告错误报告中的错误.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有