2009-05-27 15 views
0

iphone sdkから複数のパラメータをmySQLデータベースとインターフェイスするサーバ側のPHPに渡したいとします。NSURLオブジェクト内の複数のパラメータ

私はこれを行う方法についていくつかの答えを見つけましたが、いくつかのパラメータを組み込む方法を考え出すのは苦労しています。どうなるか私が今持っていることは1つのパラメータに働くだろう


- (IBAction)sendButtonPressed:(id)sender 
{ 
    NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d", theDate]; 
    NSURL *url = [[NSURL alloc] initWithString:urlstr]; 

    [urlstr release]; 
    [url release]; 
} 

ですが、私は何を探していることはどのように

http://server.com/file.php?date=value&time=value&category=value&tags=value&entry=value 

ようなものになるだろう

私はこれをするつもりですか?

答えて

2

- initWithFormatメソッドは、フォーマット文字列に対して複数の引数をとります。

だから、このようなことを行うことができます。

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d&second=%d&third=%d", theDate, 2, thirdIVar]; 

- initWithFormatprintf()とほぼ同じ動作し、それが変異体です。変数が定義さnameField, tagsField, dreamEntryと設定されています。ここでは

は、いくつかのprintf()http://stahlforce.com/dev/index.php?tool=csc02

編集のですか?

彼らはNSString秒であり、あなたがこの方法でそれらを使用することはできません@interfaceで定義されていない限り。

私はハードのテストのためのいくつかの値を符号化することをお勧め:NSURLを作成

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%@&time=%@&name=%@&category=%d&tags=%@&entry=%@", nil, nil, @"Name", nil, @"Tags", @"Dream"]; 
1

は、サーバーとの開いていない通信を行います。これは単なるURLを保持するためのデータ構造です。あなたはNSURLConnectionで読んでみたいです。

フォーマットで渡すすべての変数は実際に数値ですか? %dは数字のプレースホルダです。 %@はオブジェクトです。あなたが数字を期待しているならば、テスト目的のためにも、無限を渡すことは非常に驚くべきことです。 nilは0なので "うまくいく"が、実際には数字ではないことが示唆されます。

+0

この場合、通信は片方向でしか動作しないと考える... iphoneはサーバーからデータを戻さず、送信するだけで、これが機能するためには何が失われるのだろうか? 私はそれに応じてプレースホルダを切り替えました。ヘッドアップに感謝します。 – bcsantos

+0

NSURLの作成はNSStringの作成と似ています。どこにも出力されません。それでもサーバーに接続する必要があります。これがNSURLConnectionの機能です。データを元に戻したくない場合でも、何かを得るつもりです。少なくとも、HTTP/200を手に入れたいと思っていますね。 –

+0

説明してくれてありがとう、NSURLConnection – bcsantos

関連する問題