该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
方法将起作用!
此外,为了让您将来更清楚,您可以在设置quoteNumber
字符串时利用 Objective-C 的点表示法语法,如下所示:
NSString *quoteNumber = self.textBox.text;
此外,您正在尝试将此引用的数字作为数字传递给您urlString
的数字(如 所示%d
),请记住这quotedNumber
是一个 NSString 对象,并且当您尝试将其传递给stringWithFormat
方法时会崩溃。您必须先将字符串转换为 NSInteger 或 NSUInteger。
请参考这个 SO question如何做到这一点(不用担心这很容易)!