3

ファイルのパスに到達するためにこれほど長い道のりを使用しなければならないのは少し奇妙に思えます。

NSURL *soundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
                                            pathForResource:@"0" ofType:@"aiff"]];

またはのクラスメソッドなど、より高速な方法があるのだろうNSURLNSBundle

NSURL *soundURL = [NSURL urlFromMainBundle:@"0.aiff"];

また

NSURL *soundURL = [NSBundle urlFromMainBundle:@"0.aiff"];

そうでない場合、それが良い形ではない理由はありますか?

4

3 に答える 3

6

どうですか:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"0" withExtension:@"aiff"];

NSURLそこから始めて、 orのカテゴリを書くこともできますNSBundle:

@interface NSURL (NSURL+Resource)
+ (NSURL *)URLForResource:(NSString *)resource;
@end

@implementation NSURL (NSURL+Resource)

+ (NSURL *)URLForResource:(NSString *)resource
{
   NSString *name = [resource stringByDeletingPathExtension];
   NSString *extension = [resource pathExtension];

   return [[NSBundle mainBundle] URLForResource:name withExtension:extension];
}

@end
于 2012-04-30T11:44:49.407 に答える
1

クラスURLForResource:withExtension:で使用できます:NSBundle

NSURL *soundURL = [[NSBundle mainBundle]URLForResource:@"0" withExtension:@"aiff"];
于 2012-04-30T11:44:22.027 に答える
1

あなたが試すことができます:

NSURL *soundURL = [[NSBundle mainBundle]URLForResource:@"0" withExtension:@"aiff"];
于 2012-04-30T11:47:10.413 に答える