3

我们必须使用这么长的路才能到达文件的路径,这似乎有点奇怪:

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

我想知道有没有更快的方法,例如NSURLor的类方法NSBundle

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

或者

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

如果不是,是否有理由说明它不是一个好的形式?

4

3 回答 3

6

怎么样:

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

从那里开始,您还可以为NSURLor编写一个类别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 回答