藤田 泰介
ソフトバンククリエイティブ
売り上げランキング: 24,891
ソフトバンククリエイティブ
売り上げランキング: 24,891
現在この本で勉強中。
このCoreDataのサンプルアプリは、 detailItemのゲッター(?)をオーバーラード(?)して、_detailItemがなかったら、insertNewObjectForEntityForName でオブジェクトを作っている。
追加でDetailに遷移して、doneボタンを押さずにMasterに戻ると、空のセルがでてきます。(オブジェクトは追加されている)
更新でDetailに遷移して、doneボタンを押さずにMasterに戻ると、編集した内容は消えます。
これはサンプルなのでミニマムなコードのようです。
追加でsaveせずに戻ったときは空オブジェクトがないといいなぁ、と思って、じゃあどうすれば良いのかしらと考えましたが、SQLと同じで、doneボタンが押されたときに、オブジェクトを作ってしまえば良いのではないかと思いました。
doneのなかで、_detailItemがなかったらinsertNewObjectForEntityForNameでオブジェクトを作って、その後は更新の場合と同じです。
こうすると、追加でも更新でも、doneボタンを押さずにMasterに戻ったときの挙動は、似た感じになります。両方とも、無かったことになる。
- どういう操作にするか
- どういうタイミングでデータを更新するか
そこらへんが使い勝手の良さとかにつながるので、重要な部分でしょう。基本は、
- ユーザーの入力したものはふいにしない
- 入力更新がある場合はどうするか確認する
だと思いますが、直感的なインターフェースだと、いちいち確認しない場合もあります。
- 追加の時は保存されていいけど
- 更新はちょっと戻りたい
個人的にはそんな優柔不断なことを思ったり。。
0 件のコメント:
コメントを投稿