的initWithString
方法只能接受正常的NSString,你传递一个格式化的NSString,看看下面的代码:
NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://TestSite.com/virdirectory/Webservice1/Service1.asmx/GetQuote?number=%d", quotedNumber]];
这可能有点令人困惑,你可以按如下方式分解:
NSString *urlString = [NSString stringWithFormat:@"http://TestSite.com/virdirectory/Webservice1/Service1.asmx/GetQuote?number=%d", quotedNumber];
NSURL *url = [[NSURL alloc] initWithString:urlString];
现在您的字符串已正确格式化,并且NSURL initWithString
方法将起作用!
而且,只是所以它是你更清晰的未来,你可以利用Objective-C的点表示法语法当您设置quoteNumber
字符串,如下所示:
NSString *quoteNumber = self.textBox.text;
而且,你想要将此引用号码作为数字传递到urlString
(如%d
所示),请记住quotedNumber
是NSString对象,并且在尝试将其传递给stringWithFormat
方法时会崩溃。您必须先将字符串转换为NSInteger或NSUInteger。
请参阅this SO question如何做到这一点(不要担心它很容易)!
来源
2012-07-04 01:45:12
Max
你说得对,应该是%@ – wackytacky99