この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の質問を参照してください(非常に簡単ですのでご安心ください)。