我正在开发一款iPhone应用程序。
我知道如何读取放置在与项目相同的directroy中的文本文件。 但是如何读取与项目位于同一目录中的文件夹中的文件? 它总是给我一个空白的屏幕。
这有效:
NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myText" ofType:@"txt"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];
但这给了我一个空白的文字视图:
NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myFolder/myText" ofType:@"txt"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];
如何解决此问题?
答案 0 :(得分:0)
读取文件与开发机器硬盘上的文件结构无关。它与目标设备硬盘的文件结构有关。如果您查看标准iOS应用Xcode项目的构建阶段,您将看到“复制捆绑资源”阶段。此阶段负责将资源(如文本文件)复制到应用程序的文档目录。
即使您的资源位于开发计算机项目结构中的不同文件夹中,也有可能将其复制到应用程序包中的根级文档目录。您可以通过查看Copy Bundle Resources构建阶段并检查您要加载的资源来获得一个想法。如果它不在文件夹引用(蓝色,Finder-esque,文件夹)中,则可能只是被复制到根级别。
答案 1 :(得分:-1)
NSBundle的方法为pathForResource:ofType:inDirectory:
NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myText" ofType:@"txt" inDirectory:@"myFolder"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];