Jer*_*y L 2 cocoa-touch objective-c foundation ios
我们必须使用如此长的路才能到达文件的路径,这似乎有点奇怪:
NSURL *soundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"0" ofType:@"aiff"]];
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更快的方法,例如类方法NSURL或NSBundle?
NSURL *soundURL = [NSURL urlFromMainBundle:@"0.aiff"];
Run Code Online (Sandbox Code Playgroud)
要么
NSURL *soundURL = [NSBundle urlFromMainBundle:@"0.aiff"];
Run Code Online (Sandbox Code Playgroud)
如果没有,有没有理由说它不是一个好形式?
怎么样:
NSURL *url = [[NSBundle mainBundle] URLForResource:@"0" withExtension:@"aiff"];
Run Code Online (Sandbox Code Playgroud)
从那里开始,你也可以为NSURL或写一个类别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
Run Code Online (Sandbox Code Playgroud)