我正在开发一个iPhone应用程序。
我知道如何读取与项目放置在同一指导中的文本文件。但是,如何读取与项目位于同一目录中的文件夹中的文件?它总是给我一个空白的屏幕。
这有效:
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];
我该如何解决此问题?
读取文件与开发计算机硬盘驱动器上的文件结构无关。它与目标设备硬盘驱动器的文件结构有关。如果您查看标准 iOS 应用程序 Xcode 项目的构建阶段,您将看到"复制捆绑资源"阶段。此阶段负责将资源(如文本文件)复制到应用的文档目录。
即使资源位于开发计算机项目结构中的不同文件夹中,它仍然很有可能被复制到应用捆绑包中的根级别文档目录。您可以通过查看复制捆绑资源构建阶段并检查要加载的资源来获得想法。如果它不在文件夹引用(蓝色的 Finder 式文件夹)中,则可能只是将其复制到根级别。
> NSBundle 有方法路径 ForResource:ofType:inDirectory:
NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myText" ofType:@"txt" inDirectory:@"myFolder"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];