2016-12-02 13 views
0

iOSからオンラインMySQLデータベースに特定のデータを送信しようとしています。 PHPは、サーバー上でデータの受信と挿入を処理するために使用されます。アップロード操作を1つずつ管理する方法

私にはいくつかのデータパッケージがあります。そして、キーを1つずつ送信することです。つまり、iOSがサーバからのフィードバックを受け取って最初のデータセットがすでにデータベースに格納されていることを確認するまで、キュー内の2番目のデータパッケージを待機させるメカニズムが必要です。

私は最初、iOSアプリケーションにシーケンスでアップロード作業を実行させることを目的として、シリアルディスパッチキューの作成を試みました。 iOS側ではシーケンスに従って作業が行われましたが、データがデータベースに挿入されているかどうかを確認することなく、データパッケージを送信する際に各タスクは単に「完了」しました。それで問題は、ネットワーク接続のような問題のために、データを送信してからデータがサーバにMySQLに完全に保存されるまでに時間がかかるということです。

その結果、データが必要な順序で保存されないことがあります。後のデータは以前のデータよりも早く保存される可能性があります。

私は、サーバー側からiOS側への「フィードバック」メカニズムがないと思います。

誰でもこのフィードバックメカニズムを実現する方法を提案できるので、データタスクをアップロードするシリアルシーケンスを制御できます。

ありがとうございました!

よろしく、 ポール

答えて

1

サーバーにデータを送信する場合は、使用可能なフレームワークのほとんどは、コールバックを提供しています。 (現在またはAlmofireとして知られている)AFNetworkingで、それは次のようになります。

[[ConnectionManager instance] GET: @"link" parameters: nil 
success:^(AFHTTPRequestOperation* operation, id responseObject) 
{ 
} 
failure:^(AFHTTPRequestOperation* operation, NSError* error) 
{ 
}]; 

だから、あなたが与えられたハンドラでコードを入れて、継続的に要求を行うことができます。

また、適切な依存関係を設定しながら、同時操作を作成し、それらをOperationQueueに配置することもできますが、それは確かに時間がかかります。

関連する問題