我正在尝试使用“多个部分”制作NSURL
。我有多个文件名称和文件名中的数字,如:john2.mp3
,adam13.mp3
。我随机化了一个数字和一个名字。然后我想加载文件:
url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%s%d.mp3",[[NSBundle mainBundle] resourcePath]], name, number];
这不起作用。它说:Too many arguments in one method
。我做错了什么?
我使用Xcode 4.6并开发适用于iOS 6.1。
答案 0 :(得分:2)
你的一个右方括号位于错误的位置。它应该是:
url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%s%d.mp3",[[NSBundle mainBundle] resourcePath], name, number]];
此外,如果name
是NSString
,那么您需要使用%@
。如果name
确实是char *
,则使用%s
是正确的。
这样做会更清楚:
NSString *filename = [NSString stringWithFormat:@"%@%d", name, number];
NSURL *url = [[NSBundle mainBundle] URLForResource:filename withExtension:@"mp3"];
不要试图将如此多的嵌套调用塞进一行。分开来。它更容易阅读和调试。