我正在使用iPhone6模拟器,我正在尝试使用以下任何代码获取文件(任何扩展名为pdf的html):
NSString *file = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@.pdf", documentName] ofType:nil];
或
NSString *file2 = [[NSBundle mainBundle] pathForResource:documentName ofType:@"pdf"];
我确定该文件存在于Resources文件夹中而我没有添加该文件,我以编程方式从Web下载并在此路径中查看 (/ Users / myMac / Library / Application Support / iPhone Simulator / 6.9 / Applications / E60F22DD-7301-48EF-AB25-B9D42FA6AD49 / myApp.app)我看到了文件,但代码看不到它
但是这段代码有时会给我null,而其他一些时候会给我文件。
为什么会发生这种情况以及如何防止这种情况并使其始终为我提供文件。 考虑一下我使用
if(file != nil)
并希望如果file == nil尝试使用任何方式打开它。
先谢谢。
答案 0 :(得分:5)
确保您的文件已添加到项目的目标中。选择目标,然后选择Build Phases-> Copy Bundle Resources。该文件应该在那里。
有时值得清理您的项目并从头开始构建。我已经看到添加文件没有复制到模拟器/设备直到执行清理的情况。
答案 1 :(得分:0)
a)如果您从网上下载任何内容,那么内容将转到您的应用程序的文档目录。
b)没有其他应用程序可以与您的应用程序doc目录进行交互。
c)Bundle路径,即应用程序的groups和files部分是只读的。
d)除非您允许访问应用程序的文档目录,否则没有人可以将您的应用程序隐藏起来。
希望这有帮助