シリコンバレーのマーケター日記

東京、シンガポールを経てシリコンバレーで働く、マーケター。英語、プログラミング、データ分析は次世代マーケターの必須スキルだと信じて進む。

APP -> MySQL: アプリからJSON形式でサーバーへ送る

アプリからサーバーに送るデータ/パラメータの数が多く動的ならば、JSONに変換してサーバーに送ることが必要だと思います。

参考サイト:

010 JSONデータのPOST - Swift Docs

キモくないイラストでiOSアプリ勉強-Swiftサラリーマン

以下2ステップで進めてみます。

  1. .swiftで、NSDictionaryをJSONに変換して、URLエンコードする
  2. .phpで、JSONを配列に戻し、MySQLデータベースに送る

.swift

ポイント

NSDataをNSStringにして、.phpに送るためのsyntax、”変数名=変数値”の形に揃える

 

.php

ポイント

"INSERT INTO shop SET item_name='$name'"とスッキリ記述(Swiftサラリーマンさんありがとうございます)

 

結果

f:id:yuyutata:20150620183329p:plain

 

雑感

.swift内でバックグラウンド処理で、

completionHandler: { (data, resp, err) のdataには、.phpファイルのechoメソッド(表示させるメソッド)の記述が戻ってきていました。

f:id:yuyutata:20150620183514p:plain

つまり、ここを見て.phpへの通信完了を判断したらいい。ということでしょうか。completionHandlerをもう少し掘り下げてみようと思います。

(追記:Closure expressionと呼ばれるこの型では、taskが完了するとcompletionHeandlerが呼び出されるようです。ですので、.phpの方で完了した時点で、xxを返し、xxが条件文を書いてあげれば、「POSTが完了したらxする、 POSTが完了しなかったらyする」といったことができそうです。next stepは、SQLiteに一旦記録させてからサーバーに送る。かな。) 

 

来週火曜日から日曜まで、人生初のシドニー出張です。コケージョン(白人)なんだけど地域的には、アジアの一部に入るオーストラリア。個人的に、イージーで人当たりも良く、鼻にかからない感じが、大好きです。たまにイージー過ぎて期日がいい加減なことはご愛敬。久しぶりの冬(南半球)を楽しんできます!