2012年8月29日水曜日

Preferencesとマルチアカウント

Preferences画面を作成。
UINavigationControllerとUITableViewControllerでちゃかちゃか作っていく。
このへんは参考書籍もサイトも充実してる(しすぎてて逆に探しにくいくらい)ので、デリゲートメソッドを使うやり方に戸惑いながらもハマってしまうことは少ないかな。先人たちに感謝。
このテーブルの仕様は慣れてくると非常によく考えられた汎用性の高い仕組みだと思う。


で、tumblrのマルチアカウント対応を検討中。

■アカウント登録されてない場合:
・起動時に最初にアラート、登録したいのとは別のアカウントでログインしてたらログアウトを促す。
・userdefaultの中の該当する配列(以下activeAccArr)見て空ならgetAToken貼る。
・帰ってきたらラップしたYESを配列に入れてUDに書く。(getATokenの中でやる)
・setATokenしてアカウントのusernameを取ってshortnameに入れる。
・reqDBする。

■アカウントを追加する場合:
・activeAccArrのcount分usernameとってAccounts配列に入れる。
・Accounts配列を展開して(DL完了前のNULLに注意)activeAccArrのYESの場所のAccounts配列の要素をcheckMarkする。
・追加ボタンで最初にアラート、登録したいのとは別の別アカウントでログインしてたらログアウトを促す。
・getAToken貼って、帰ってきたらactiveAccArrを全部NOにしてラップしたYESを最後に追加してUDに書く。
・setATokenしてアカウントのusernameを取ってshortnameに入れる。(変更Flag立てる?)
・変更Flag立ってたらPrefでdoneでreqDBする。

■アカウントを削除する場合:
・activeAccArrのcount分usernameとってAccounts配列に入れる。
・Accounts配列を展開して(DL完了前のNULLに注意)activeAccArrのYESの場所のAccounts配列の要素をcheckMarkする。
・削除されたrowのactiveAccArrを削除し、それがYESだった場合は最初の要素をYESにしてUDに書く。
・setATokenしてアカウントのusernameを取ってshortnameに入れる。(変更Flag立てる?)
・変更Flag立ってたらPrefでdoneでreqDBする。

■デフォルトアカウントを変更する場合:
・activeAccArrのcount分usernameとってAccounts配列に入れる。
・Accounts配列を展開して(DL完了前のNULLに注意)activeAccArrのYESの場所のAccounts配列の要素をcheckMarkする。
・選択されたら元のYESをNOにして選択されたrowのactiveAccArrをYESにしてUDに書く。
・setATokenしてアカウントのusernameを取ってshortnameに入れる。(変更Flag立てる?)
・変更Flag立ってたらPrefでdoneでreqDBする。


こんな感じか。usernameを度々読みに行くのがなんか気持ち悪いが最新のものを読むためには仕方ない。あとはこの自分にしかわからない日本語を自分にしかわからないObj-c語に翻訳するだけだ。
楽しい。

0 件のコメント:

コメントを投稿