0

リソースフォルダに「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);
    } 
}
4

2 に答える 2

0

キックのために、ファインダーに入り、ファイルの1つをまったく同じ名前に変更してロードしました。次に、他のものを同じ名前に変更しました。調べたところ、ファイル名の前後に変な文字や空白はありませんでした。したがって、これらはすべてシミュレーターの配列に正常にロードされます。理由はまだわかりません。

于 2012-09-07T00:10:12.400 に答える
0

間違ったサブディレクトリを探していることはほぼ確実であり、次のようなものを使用する必要があります。

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

または、それが Documents ディレクトリにある場合は、これを使用して取得し、ファイル名を追加できます。

NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
于 2012-09-05T18:37:46.663 に答える