iOSネットワークプログラミングの文法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Supreme
記事: 7
登録日時: 10年前

iOSネットワークプログラミングの文法

#1

投稿記事 by Supreme » 10年前

こんばんは。

iPhoneアプリ作成の初心者です。

「iPhoneアプリ ネットワーク + GPS プログラミング」 という書籍を勉強しています。

90ページ(サーバへPOSTするという項)に紹介されているコードの下記の部分の文法的な意味がわかりません。

書籍には次の説明があります




見慣れないASCII_DATAは、データを7ビットのASCIIコードに変換してNSData型として取得するための、NSStringを使ったマクロ定義である。
複数の情報を一度に送っているので複雑なことをやっているように見えるが、境界(boundary)となる行でデータ項目を区切り、Content-Dispositionという説明情報に続けて実際のデータを順番に配置している。

コード:


//写真データ
[result appendData:
ASCII_DATA(([NSString stringWithFormat:@"--%@\n",boundary]))];

[ result appendData:
ASCII_DATA(([NSString stringWithFormat:@"Content-Disposition: form-data;
name=\"%@\";filename=\"%@\"\n",@"uploaded",@"upload.JPG"]))];


わからない箇所は下記のとおりです。


①form-dataの後のセミコロンの文法的な意味

②name=\"%@\"の後のセミコロンの文法的な意味

③filename=\"%@\"\n"の後のカンマの文法的な意味

④@"uploaded"の後のカンマの文法的な意味

⑤なぜASCII_DATAの後、小カッコが二重なのか


どうか教えていただきたく、よろしくお願い致します。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: iOSネットワークプログラミングの文法

#2

投稿記事 by h2so5 » 10年前

1) セミコロンはパラメータの区切りのための文字です。RFC2183とRFC2388でMIME拡張として定義されています。
2) 1 と同じ
3) カンマはメッセージ式の引数の区切りです。Objective-Cの文法を確認してください。
4) 3 と同じ

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: iOSネットワークプログラミングの文法

#3

投稿記事 by h2so5 » 10年前

5) メッセージ式の引数のカンマが、関数マクロの引数の区切りとして解釈されてしまうのを防ぐためです。

Supreme
記事: 7
登録日時: 10年前

Re: iOSネットワークプログラミングの文法

#4

投稿記事 by Supreme » 10年前

こばんは。

③と④については、メソッドの引数はコロンで区切り、関数の引数はカンマで区切る、ということで理解しました。

⑤についてはマクロの復習をします。

①と②に関係しますが、Content-Disposition: form-data; 〜 ;filename=\"%@\"\n",までの文はObjective-Cではないと思うのですが、言語は何でしょうか?

どうか教えていただきたく、お願い致します。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: iOSネットワークプログラミングの文法

#5

投稿記事 by softya(ソフト屋) » 10年前

既にh2so5さんが書いた通り、①と②は通信データの部分ですので、通信データのRFC仕様を御覧ください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る