Iphone 找到束之外的路径
我想找到不在我的包中的文件的路径Iphone 找到束之外的路径,iphone,objective-c,Iphone,Objective C,我想找到不在我的包中的文件的路径 NSString *path = [[NSBundle allBundle] pathForResource:nm ofType:@"jpg" inDirectory:nil]; 但它警告说NSArray可能不会响应 是否有任何方法可以找到任何其他文件夹的文件路径。allBundle返回所有bundle的NSArray。您的意思是使用方法mainBundle 如果找不到您的资源,那么这很可能是您正在查找的资源的名称有问题(您是否检查了nm的值是否正确?)也请在
NSString *path = [[NSBundle allBundle] pathForResource:nm ofType:@"jpg" inDirectory:nil];
但它警告说NSArray可能不会响应
是否有任何方法可以找到任何其他文件夹的文件路径。
allBundle
返回所有bundle的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:”部分(请参阅文档)。nm是文件名。。但是使用主捆绑包,我无法找到我捆绑包之外的图像,但这不会神奇地使
NSArray
响应用于NSBundle
的方法。您需要做的是使用for(…in…
循环遍历NSArray
中包含的NSBundle
,并对它们中的每一个调用该方法。我编辑了我的答案,这也反映了Douwe所说的!