将文本字段的值放入另一个字符串中

时间:2011-05-19 00:20:07

标签: objective-c cocoa-touch ios nsstring

当我写这篇文章时:

NSLog("Text Value %@",statutsField.text);

它工作正常,但是当我这样做时:

NSURL *url = [NSURL URLWithString:@"http://MyUrl/%@",statutsField.text];

我收到错误:

  

方法调用的参数太多,预期......

请帮忙。

3 个答案:

答案 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}}方法。