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所说的!