使用 pathForResource:ofType:inDirectory访问文件:
我有一个名为TextFiles
的文件夹中添加了一个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)
我也有同样的问题。 我find的解决scheme是(在xcode 4.x中):
转到:目标 – >“构build阶段” – >“复制束资源”然后在这里添加该特定的文件。 如果该文件已被添加,请将其删除并重新添加。
清理项目并运行。 有用。 🙂
当我拖入文件时,默认情况下,“添加到目标”框似乎没有勾选。 如果我不打勾,那么我有问题描述。 通过删除文件,然后将其拖回来,但确保勾选“添加到目标”来修复它。
以及我发现我犯的错误是我添加一个组到项目,而不是添加更多的指令真实的目录
试试这个,它为我工作。
NSString *str=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"paylines.txt"];
对于模拟器
NSURL *rtfUrl = [[NSBundle mainBundle] URLForResource:@"paylines" withExtension:@".txt"];
所有你需要做的是确保选中下面显示的checkbox。
进入“目标” – >“构build阶段”,select您的目标,select“构build阶段”选项卡,单击“添加构build阶段”,并select“添加复制文件”。 将目的地更改为“产品目录”。 将您的文件拖到“添加文件”部分。
在Mac OSX的情况下,
转到目标 – >构build阶段点击+复制新文件构build阶段select产品目录并将文件放在那里。
清理并运行该项目。
你是否试图在XCTest内部和砸你的笔记本电脑的边缘? 这是你的线程: 为什么unit testing内部的代码不能findbundle资源?
在@Neelam Verma的回答或@ dawid的回答之后,它的结果与@Neelam Verma的答案相同,区别在于@ dawid的回答是从拖放文件到Xcode项目开始的,@Neelam Verma的回答是从文件已经是Xcode项目的一部分,我仍然无法获得NSBundle.mainBundle().pathForResource("file-title", ofType:"type")
来查找我的video文件。
我想也许是因为我的文件是在嵌套在Xcode项目中的组中,这是原因,所以我将video文件移动到我的Xcode项目的根目录,仍然没有运气,这是我的代码:
guard let path = NSBundle.mainBundle().pathForResource("testVid1", ofType:"mp4") else { print("Invalid video path") return }
最初,这是我的文件的名称: testVid1.MP4
,将video文件重命名为testVid1.mp4
解决了我的问题,因此,至lessofType
string参数是区分大小写的。
select项目/特定文件夹 – >右键单击 – >将文件添加到项目 – >select要添加的文件。
这对我有效。