私は、xcode でストーリーボードを使用して iphone アプリを実行しています。私のテーブルビューの 1 つで、ファイルまたはデータベースからテーブル ビューにロードする英語のプレミア リーグ テーブルを表示したいと考えています。私の質問は、このテーブルをインターネットに接続して、毎週試合後にチームの順位を更新できるようにする方法です。このアクションは何と呼ばれますか? RSS フィードまたは ftp プッシュですか? 一部の人々はJsonとデータベースを使用していますが、私はこの分野で非常に新しいので、これは私にとって混乱しすぎています. みんながどう思うか知りたいです。あなたの答えはとても参考になります。前もって感謝します!スタン
1 に答える
iOS で Web サービスを使用する場合、JSON は簡単でユビキタスです。結果を表形式で表示するのも簡単になります。
チームを Core Data オブジェクトとして定義することを検討します。チームが降格したり上に移動したりできるように、ディビジョンとチーム (用語が間違っていたらごめんなさい。EPL についてよく知らない) のオブジェクトを作成したい場合があります。各ディビジョンにはチームの関係があるため、コア データからディビジョン オブジェクトを取得し、division.teams を使用してすべてのチームの NSSet を取得するだけで、任意のディビジョンのはしごを表示できます。
次に、チームに関する情報を取得します。おそらく、各チームに関する情報を含む JSON フィードを受け取るでしょう。NSJSONSerialization (iOS に組み込まれている) を使用して受信したデータを解析し、Core Data に保存します。
RestKitを使用すると、ネットワーク リクエストを処理し、受信した JSON を Core Data に直接マップできます (構成に少し時間がかかる場合)。または、解析を自分で行いたい場合は、AFNetworkingを使用できます。
データを表示するには、NSFetchedResultsController を使用できます。クエリを設定し、最初のフェッチを実行したら、テーブル ビューをクエリに接続すると、はしごが表示されます。NSFetchedResultsController にはソート記述子が必要です-あなたの場合はおそらくラダーランキングになります。テーブル ビューを含むビュー コントローラーを NSFetchedResultsController のデリゲートとして設定します。
定期的な更新を行うのは簡単です。アプリがフォアグラウンドに入るときはいつでも、Core Data オブジェクトのタイムスタンプをチェックし、更新を開始するのに十分古いかどうかを確認します (または、フェッチを行うたびに、NSUserDefaults などの単純な NSDate 文字列をどこかに保存します)。 )。そうである場合は、フェッチ/解析/更新サイクルをもう一度実行します。基になるデータが変更されたことが NSFetchedResultsController に通知され、テーブルが更新されるため、テーブルが自動的に更新されます。