1

私はios devの初心者で、ユーザーがアクセストークンですでに承認されている場合、ボタンを無効にしようとしています。きれいな方法があるかどうかはわかりません。現在、API クライアント オブジェクト isAuthorized: を呼び出す viewWillAppear にチェックがあり、bool を返し、ボタンの有効化を yes/no に設定します。isAuthorized で、アクセス トークンが存在する場合はテスト http リクエストを作成しますが、完了ブロックを待つ必要があるため、タイミングがオフになり、ボタンが無効になるべきでないときに無効になります。NSNotification を設定する必要がありますか、それともクライアントではなく viewWillAppear でテスト http 要求を作成する必要がありますか? または、より良い解決策はありますか?

ありがとう

4

1 に答える 1

1

まず、View Controller が単に「クライアント」オブジェクトと通信し、クライアント オブジェクトがサーバーと通信するのは良いことです。それが正しいレイアウトです。UI部分を設計する方法:

  • クライアント オブジェクトには、「私の承認は最新のものですか?」という内部感覚が必要です。これは、一度チェックされたか、過去 X 分間にチェックインされたことを意味する可能性があります。状況によります。

  • を呼び出したときisAuthorizedに認証が最新でない場合は、すぐに戻っNOてリクエストを行います。

  • リクエストが届いたら、 を呼び出します。これによりsetAuthorized:、KVO 通知が投稿されます。

  • ビュー コントローラー KVOisAuthorizedは、必要に応じてボタンを監視および更新します。(代わりに、デリゲート メソッドまたは通知を使用することもできます。)

「許可されていない」と「わからない」を区別したい場合は、 のauthorizationState代わりに 3 オプションの列挙型とメソッドを作成するだけですisAuthorized

于 2012-08-24T04:35:41.827 に答える