2012-07-04 37 views

回答

0

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如何做到这一点(不要担心它很容易)!

1

您需要格式化您的字符串。试试这个:

NSString *urlString = [NSString stringWithFormat:@"http://TestSite.com/virdirectory/Webservice1/Service1.asmx/GetQuote?number=%@", quoteNumber]; 
NSURL *url = [[NSURL alloc] initWithString:urlString]; 
+0

你说得对,应该是%@ – wackytacky99

1

我想您所想的NSString的stringWithFormat:的:

[NSURL URLWithString:[NSString stringWithFormat:@"http://TestSite.com/virdirectory/Webservice1/Service1.asmx/GetQuote?number=%@", quoteNumber]] 

另请注意格式说明符的变化%@,因为它的NSString(不是int)的实例

0

问题是

[NSURL initWithString:] 

需要的NSString类型的一个参数,但你传递了两个参数。

您需要传递一个NSString参数。更改您的代码从

NSURL *url = [[NSURL alloc] initWithString:@"http://TestSite.com/virdirectory/Webservice1/Service1.asmx/GetQuote?number=%d", quoteNumber]; 

NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://TestSite.com/virdirectory/Webservice1/Service1.asmx/GetQuote?number=%d", quoteNumber]]; 
相关问题