NSURL中的多个参数

时间:2013-08-24 16:56:27

标签: ios objective-c

我正在尝试使用“多个部分”制作NSURL。我有多个文件名称和文件名中的数字,如:john2.mp3adam13.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。

1 个答案:

答案 0 :(得分:2)

你的一个右方括号位于错误的位置。它应该是:

url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%s%d.mp3",[[NSBundle mainBundle] resourcePath], name, number]];

此外,如果nameNSString,那么您需要使用%@。如果name确实是char *,则使用%s是正确的。

这样做会更清楚:

NSString *filename = [NSString stringWithFormat:@"%@%d", name, number];
NSURL *url = [[NSBundle mainBundle] URLForResource:filename withExtension:@"mp3"];

不要试图将如此多的嵌套调用塞进一行。分开来。它更容易阅读和调试。