我想找到不在我的包中的文件的路径..
NSString *path = [[NSBundle allBundle] pathForResource:nm ofType:@"jpg" inDirectory:nil];
但它警告NSArray可能不会回复..
有没有办法找到任何其他文件夹的文件路径。
答案 0 :(得分:1)
allBundle
会返回所有捆绑包的 NSArray 。您的意思是使用方法mainBundle
。
如果找不到您的资源,那么这很可能是您要查找的资源名称的问题(您检查过 nm 的值是否正确?)另外,请检查在您的目标下的“复制资源”部分,您的.jpg文件列在那里。如果不是那么你应该将它拖到那里以确保在你构建它时将文件复制到你的包中。
如果您真的想要搜索资源的所有可用包,那么您可以遍历allBundle
返回的包数组,如下所示:
NSString* pathForResource = nil;
for (NSBundle currentBundle in [NSBundle allBundle])
{
pathForResource = [currentBundle pathForResource:nm ofType:@"jpg"];
if (pathForResource)
{
break; // Found resource, no longer need to search through bundles.
}
}
注意:您也不需要使用方法的“inDirectory:”部分(请参阅文档)。