我在名为paylines.txt
的文件夹中添加了一个文件TextFiles
,该文件位于Xcode中我的iOS项目的Resources
文件夹中。
这是我用来访问文件的代码:
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"paylines" ofType:@"txt" inDirectory:@"TextFiles"];
NSLog(@"\n\nthe string %@",filePath);
代码打印:
2011-06-07 14:47:16.251 slots2[708:207]
the string (null)
我也遇到了同样的问题。我找到的解决方案是(在xcode 4.x中):
转至:目标 - >“构建阶段” - >“复制捆绑资源”然后在此处添加该特定文件。如果已添加该文件,请将其删除并重新添加。
清理项目并运行。有用。 :)
选择项目/特定文件夹 - >右键单击 - >将文件添加到项目 - >选择要添加的文件。
这对我有用。
好吧,我发现了我提交的错误,我正在为项目添加一个组,而不是添加更多instructions的真实目录
当我拖入文件时,默认情况下,“添加到目标”框似乎未勾选。如果我不勾选它,那么我就会遇到问题。通过删除文件然后将其拖回来修复它,但确保勾选“添加到目标”。
试试这个,它对我有用。
NSString *str = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"paylines.txt"];
对于模拟器
NSURL *rtfUrl = [[NSBundle mainBundle] URLForResource:@"paylines" withExtension:@".txt"];
您是否尝试在XCTest内部执行此操作并濒临破碎笔记本电脑?这是你的主题:Why can't code inside unit tests find bundle resources?
转到“目标” - >“构建阶段”,选择目标,选择“构建阶段”选项卡,单击“添加构建阶段”,然后选择“添加复制文件”。将目标更改为“产品目录”。将文件拖到“添加文件”部分。
如果是Mac OSX,
转到目标 - >构建阶段单击+以复制新文件构建阶段选择产品目录并将文件放在那里。
清理并运行项目。
按照@Neelam Verma的回答或@ dawid的答案,其结果与@Neelam Verma的答案相同,不同之处在于,@ dawid的答案始于将文件拖放到Xcode项目中,而@Neelam Verma的答案始于文件已经是Xcode项目的一部分,我仍然无法让NSBundle.mainBundle().pathForResource("file-title", ofType:"type")
找到我的视频文件。
我想也许是因为我的文件是在嵌套在Xcode项目中的Group中,这是原因,所以我将视频文件移动到我的Xcode项目的根目录,仍然没有运气,这是我的代码:
guard let path = NSBundle.mainBundle().pathForResource("testVid1", ofType:"mp4") else {
print("Invalid video path")
return
}
最初,这是我的文件的名称:testVid1.MP4
,将视频文件重命名为testVid1.mp4
解决了我的问题,因此,至少ofType
字符串参数区分大小写。