0

これは私がパブリックメソッドに持っているものです-(IBAction)methodName

NSString *quoteNumber = [[self textBox] text];

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

私が得るエラーは次のとおりです。

メソッド呼び出しに対する引数が多すぎます。予想される1、2があります。

私は何が間違っているのですか?

4

4 に答える 4

1

文字列をフォーマットする必要があります。これを試して:

NSString *urlString = [NSString stringWithFormat:@"http://TestSite.com/virdirectory/Webservice1/Service1.asmx/GetQuote?number=%@", quoteNumber];
NSURL *url = [[NSURL alloc] initWithString:urlString];
于 2012-07-04T01:37:45.910 に答える
1

私はあなたがNSStringのことを考えていると思いますstringWithFormat:

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

また、フォーマット指定子はNSStringのインスタンス(intではない)であるため、%@に変更されていることに注意してください。

于 2012-07-04T01:37:58.620 に答える
0

問題は

[NSURL initWithString:]

NSStringタイプの1つのパラメーターが必要ですが、2つのパラメーターを渡しました。

単一の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]];
于 2012-07-04T01:44:15.733 に答える
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メソッドが機能します。

また、将来的に明確になるようにquoteNumber、次のように文字列を設定するときに、Objective-Cのドット表記構文を利用できます。

NSString *quoteNumber = self.textBox.text;

また、この引用符で囲まれた数値を数字として渡そうとしていますurlString(で見られるように%d)。これquotedNumberはNSStringオブジェクトであり、メソッドに渡そうとするとクラッシュすることを忘れないでくださいstringWithFormat。最初に文字列をNSIntegerまたはNSUIntegerに変換する必要があります。

その方法については、このSOの質問を参照してください(非常に簡単ですのでご安心ください)。

于 2012-07-04T01:45:12.550 に答える