为什么这些图像找不到正确的pathForResource?

时间:2012-09-05 18:19:45

标签: objective-c ios nsbundle

我的资源文件夹中有“hit_circle_0.png”到“hit_circle_19.png”的图像但由于某种原因,这段代码从未通过“找到”的测试。令人讨厌的是我在另一种方法中使用完全相同的功能就在它下面。文件在“复制捆绑资源”

NSMutableArray *hitCircle = [[NSMutableArray alloc]init];
for (int i = 0; i < 20; i++) {

    NSString *name = [NSString stringWithFormat:@"hit_circle_%i", i];
    NSString *filePath= [[NSBundle mainBundle] pathForResource:name ofType:@"png"];

    if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]){
        NSLog(@"file %@ was found", filePath);
    } else{
        NSLog(@"%@ not found", filePath);
    } 
}

2 个答案:

答案 0 :(得分:0)

我几乎肯定你正在查找错误的子目录,你需要使用类似的东西:

NSString *filePath= [[NSBundle mainBundle] pathForResource:name ofType:@"png" inDirectory:@"Hit_Circles"];

或者,如果它只是在Documents目录中,你可以使用它来获取它,然后附加你的文件名:

NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

答案 1 :(得分:0)

只是为了踢,我进入了查找器并将其中一个文件重命名为完全相同的名称并加载。然后我做了其他人 - 只需将它们重命名为同名。我看了一下,文件名之前或之后没有任何奇怪的字符或空格。所以现在它们都可以很好地加载到模拟器中的数组中。我还是没弄明白为什么。