これは、ウェブサイトと相互作用するアプリを設計する方法についての質問です。
私は、非同期で行われる情報をWebサイトに照会するアプリを持っていますNSURLConnection
(これはiOSで推奨される方法だと思います)。問題のWebサイトには、api/web-serviceインターフェースがありません。インタラクションは、ブラウザが行うように行われ、リクエストを送信し、回答を受け取り、回答を解釈して次のアクションを決定します。
このサイトは、ユーザー名とパスワードで保護されています。したがって、Webサイトを操作する場合(たとえば、「写真のリストを取得する」、「写真をダウンロードする」、「写真をアップロードする」などのユースケース)、最初にログインする必要があり、終了したらログアウトします。 。
私は自分の関数をこのように書きたいです(しかし、私は提案に対して非常にオープンです、おそらく私はそれを間違った方法で見ています)
login
if login successful
get list of photos
logout
その後、ユーザーがそれを求めた後、私はしたいです
login
if login successful
download photo
logout
私が遭遇している問題は、あなたが発砲するたびNSURLConnection
に、返信がで受信されること-connectionDidFinishLoading
です。だから私は次に何をすべきかを知るためにある種の状態を保つ必要があります、それは写真のリストを取得するためのこのログインでしたか、それとも写真をダウンロードするためのログインでしたか。
問題は、これを機能させることができないということではありません。問題は、このようなものをクリーンかつ効率的に設定して、20以上または50以上のユースケースをサポートし、それでも簡単に保守できるように拡張できるようにする方法です。すべてのユースケースが上に示したものほど単純ではないことを強調します。
私が達成しようとしていることの例は、例えばFacebookアプリです。そのアプリはまた、Facebookにログインして、アイテムの投稿、投稿などの投稿のダウンロード、写真のアップロードなど、さまざまなユースケースをサポートする必要があります。彼らはどのようにこのようなものを設計しましたか?