2

わかりました。MYSqlデータベースからiOSアプリにデータを取得する方法についていくつか質問がありましたが、ここではいくつかのベストプラクティスを尋ねています。これらはすべて別々の質問になる可能性があることを私は知っていますが、それらが互いに関連する方法で答えられることを望んでいます。

iOSアプリにデータを取得できるようにするには、最初にJSONファイルを生成し、それをサーバーに保存してから、アプリにこのファイルをダウンロードさせる必要があることを理解するのは正しいですか?

前の答えがNOの場合、それはつまり、その場でデータを取り込むことができるということですか?

最後に、JSONファイルを作成するためのPHPの例を見てきましたが、iOSはObjective-cにあります。これは、ファイルを生成するPHPページをロードできるようにするためにUIWebViewをロードする必要があることを意味しますか?

私が持っているもの:

私はMYSqlデータベースを持っています-それはPHPMyAdminを介して設定されているので、データベースの作成プロセスにまだ十分に精通していません。それを調べます。

PHPMyAdminからJSONファイルをエクスポートすることもできますが、iOSアプリではそれは良くありません。

また、JSONファイルからiOSアプリへの解析を並べ替えていますが、大量のファイルを作成するのではなく、その場でこれを実行できるようにしたいと考えています。

誰かがここで私を助けてくれることを願っています:-)

私は必ずしもコードを求めているわけではありませんが、それを無視するのは気が狂います:-)

4

3 に答える 3

6

問題は、MySQLサーバーに直接接続するためのiOSライブラリがないことです。とにかく、あなたは本当にそれをしたくないでしょう。そのため、iOSアプリケーションが理解できる形式でデータを送信できる中間サーバーが必要です。これは、データがJSON形式である必要があるという意味ではないことに注意してください。ただし、データの形式としてJSONを使用するのは非常に簡単です。ほとんどの言語は、ネイティブオブジェクト形式からJSONを生成するためのネイティブサポートを備えています。

好みの形式でデータを送信できるサーバーができたら、iOSアプリケーションがデータを取得するための何らかの方法を作成する必要があります。このためにUIWebViewを使用する必要はありません。前述のように、NSURLConnectionフレームワークはそのような要求を行うために非常に使いやすいです。ただし、ネットワークリクエストを行う際に考慮すべき要素は他にもたくさんあり、他の要素はすでにほとんどの作業を行っています。私はAFNetworkingフレームワークをJSONKitと組み合わせて使用​​するのが好きです。AFNetworkingは、リモートWebサービスへの非同期呼び出しを非常に簡単にし、JSONKitはNSJSONSerialization私の意見よりも優れています。

于 2012-12-31T01:08:34.647 に答える
2

MySQLからiOSアプリにデータを取得するために私が行うことは次のとおりです。

  1. サーバー上にPHPファイルを作成し、GETメソッド用に準備します(iOSアプリからデータを送信します)
  2. 「www.yourdomain.com/data.php?name=...」のように、iOSアプリからphpファイルにリクエストを送信します。
  3. phpファイルとechojson出力の情報を処理します。
  4. を使用してを配列にconnectionDidFinishLoading:変換する場合。NSDataNSJSONSerialization
  5. 出力情報で好きなことをしてください

それは私のやり方です。私は他のアプローチに精通していません。

于 2012-12-31T00:57:24.490 に答える
1

PHP(およびその他のサーバー側言語)は、MySQLデータベースからデータを取得し、その場でJSONとして任意のクライアントに出力できます。事前にJSONをディスクに保存する必要はありません。もちろん、クライアントの観点からは、基本的な違いはありません(ただし、データは常にデータベースにあるものの最新の表現になります)。

また、UIWebViewを使用する必要はありません。NSURLConnectionObjective-Cを使用してHTTPリクエストを作成する方法はいくつかありますが、のメソッドに沿ったものを検討することをお勧めしますsendSynchronousRequest:returningResponse:error:(非同期ブロック内で同期メソッドを使用することをお勧めしますが、それが唯一の方法ではありません) 。同様のことを行う方法に関する多くのチュートリアルや、プロセスを簡素化するための高レベルのライブラリを見つけることができます。

于 2012-12-31T00:52:50.977 に答える