当我写这篇文章时:
NSLog("Text Value %@",statutsField.text);
它工作正常,但是当我这样做时:
NSURL *url = [NSURL URLWithString:@"http://MyUrl/%@",statutsField.text];
我收到错误:
方法调用的参数太多,预期......
请帮忙。
答案 0 :(得分:2)
URLWithString:
只接受一个论点;一个NSString
。您传递了两个,字符串@"http://MyUrl/%@"
和statutsField.text
中的字符串。
您需要构建字符串的组合版本,并将该组合版本传递给URLWithString:
。请使用+[NSString stringWithFormat:]
:
NSString * myURLString = [NSString stringWithFormat:@"http://MyUrl/%@", statutsField.text]
NSURL * myURL = [NSURL URLWithString:myURLString];
函数NSLog
接受变量个参数,基于它在第一个字符串中找到的format specifiers的数量(格式字符串);这就是您NSLog
来电的原因。方法stringWithFormat:
的工作方式类似。对于它在第一个参数中找到的每个%@
,它从参数列表的其余部分获取一个对象并将其放入结果字符串中。
有关详细信息,请参阅“字符串编程指南”中的Formatting String Objects。
答案 1 :(得分:0)
尝试[NSURL URLWithString:[NSString stringWithFormat:@"http://MyUrl/%@",statutsField.text]];
希望有所帮助。
答案 2 :(得分:0)
试试这个:
NSString *base = @"http://MyUrl/";
NSString *urlString = [base stringByAppendingString:statutsField.text];
NSURL *url = [NSURL URLWithString:urlString];
方法URLWithString
只接受1个参数,但是你传递了2个参数,即字符串@"http://MyUrl/%@"
和statutsField.text
所以你必须预先连接字符串,或者使用内联stringWithFormat
的{{1}}方法。