使用[NSBundle mainBundle] pathForResource:ofType:inDirectory访问文件:

Yad*_*esh 42 xcode objective-c filepath nsbundle ios

paylines.txt在名为的文件夹中添加了一个文件,该文件TextFiles位于ResourcesXcode中我的iOS项目的文件夹中.

这是我用来访问文件的代码:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"paylines" ofType:@"txt" inDirectory:@"TextFiles"];
NSLog(@"\n\nthe string %@",filePath);
Run Code Online (Sandbox Code Playgroud)

代码打印:

2011-06-07 14:47:16.251 slots2[708:207] 

the string  (null)
Run Code Online (Sandbox Code Playgroud)

Nee*_*rma 163

我也遇到了同样的问题.我找到的解决方案是(在xcode 4.x中):

转至:目标 - >"构建阶段" - >"复制捆绑资源"然后在此处添加该特定文件. 如果已添加该文件,请将其删除并重新添加.

清理项目并运行.有用. :)

  • 强调其他人的评论和其他类似的答案:有时你这样做是正确的,但它仍然无效.如果是这样,请确保从该项目窗格(BuildPhases/Bundle Resources)中的包中删除该文件,然后重新添加它.然后项目>清洁.那最终对我有用! (2认同)

Yad*_*esh 10

好吧,我发现了我提交的错误,我正在为项目添加一个组,而不是添加真正的目录以获取更多说明


Raj*_*071 10

试试这个,它为我工作.

NSString *str = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"paylines.txt"];  
Run Code Online (Sandbox Code Playgroud)

对于模拟器

NSURL *rtfUrl = [[NSBundle mainBundle] URLForResource:@"paylines" withExtension:@".txt"];
Run Code Online (Sandbox Code Playgroud)


daw*_*wid 10

当我拖入文件时,默认情况下,"添加到目标"框似乎未勾选.如果我不勾选它,那么我就会遇到问题.通过删除文件然后将其拖回来修复它,但确保勾选"添加到目标". 在此输入图像描述