質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1332閲覧

[swift]API通信を実行しながらTableViewの画面をリロードしたい場合のAPI実行クラス

syosinsya_swift

総合スコア62

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/10/04 08:32

API通信を多数行う必要があります。
実行数が多く時間がかかるので、レスポンスを受信しながら結果をtableViewにセットして
画面を数秒おきにリロードしていきたいと考えています。

今まで実装したコードでは、API通信はWebViewで実行していたのですが
受信しながら画面を更新したい場合は、WebViewで行うのではなく、
TebleViewの画面のあるクラス内で処理するのが正しいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hameji

2019/10/08 03:39

お話を聞くとRxSwiftのいい適応だと思います。 とはいえ、自分の能力から、RxSwiftは理解してないので、 どうコードするかは答えできないですが、、、 これまでは API通信のためだけに WebView -> TableViewへ遷移していたのですか??? TableViewでデータを受け取って、 終わった(or 適当なタイミング)でreloadをかけていくでもいいと思いますが、 データの量が多い場合、画面の表示分のデータだけをAPIで取得するのが一般的だと思います。 indexPathを用い、スクロールするたびに画面に表示されているindexPathを取得し、 それに合うデータを再取得する流れになります。 たいていのSNSはこうなっていると思います。 (twitterの「通知」タブの画面やfacebookの一番左のタブのview, Instagramのhomeのタブのview)
syosinsya_swift

2019/10/08 04:07

回答ありがとうございます。 不勉強で、RxSwiftというものを初めて知りました。 >データの量が多い場合、画面の表示分のデータだけをAPIで取得するのが一般的だと思います。 はいこのようなイメージでデータを取得していきたいです。 Rxswiftをもう少し調べたいと思います。
guest

回答1

0

質問の意図がちょっと汲み取れないので、適当な回答になりますが、
URLSession等(OSSなライブラリならAlamofire等)でAPIを叩き、その結果をUITableViewに反映すればいいと思います。

何か困ったら具体的に質問してください。

受信しながら画面を更新したい場合は、WebViewで行うのではなく、

TebleViewの画面のあるクラス内で処理するのが正しいでしょうか。

正しいか正しくないかは質問者さんが決めることです。

思いつきですが、
WebViewを二個用意しておき、裏でこっそりリロードしておいて、読み込みが完了したらWebViewを入れ替える、
なんてことをやれば、似たような事は出来そうなだなとは思いました(スクロールがアレかな)

投稿2019/10/08 07:26

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問