今回で最後です。
前回までにMaster-Ditail Applicationをつかってリストを作り、新規で作成、セルを選んでDitail画面で修正して戻ってくる、というところまで出来ました。
あとは保存です。
データとして保存しておかなければアプリを終了すると全部消えてしまいます。
セーブするのにuserdefaultを使いました。
保存される内容にmutabuleが含まれるので、ロードする時にmutablecopyを使っています。
コードはこんな感じ。
#pragma mark - データの保存 - (void)load { // NSUserDefaultsの取得 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // データの取得 _objects = [[defaults arrayForKey:@"todoList"]mutableCopy]; } - (void)save { // NSUserDefaultsの取得 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // データの保存処理 [defaults setObject:_objects forKey:@"todoList"];//保存 [defaults synchronize]; }
んでもってviewDidLoadに[self load];を設置。
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [self load]; self.navigationItem.leftBarButtonItem = self.editButtonItem; }
[self save];はinsertNewToDoメソッド、replaceToDoAtIndexメソッド、- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath(たぶんセルを削除するメソッド)、の3ヶ所に書いた。
appDelegate.mに書く方法もあるが、どっちが良いんだろうなー、と、思案してます。
とりあえず、これで基本的な複数の要素の有るTodoリスト的なものが出来たと思う。
これに日付を入れれるようにするとか、並べ替えが出来るようにするとか、そーゆー要素を付け加えて行けば良いんじゃないかな。
あっちの本、こっちの本、ネット等々から寄せ集めて出来た感じなので、これでよいのか自信ありません。
再度記しておきますが、これは自分なりに備忘録として残してるものなので、おかしな所があったとしても責任はもてません。
こーした方がいいんじゃない?という意見があれば大歓迎ですが、理解できるかは不明です。(^_^;)
うじゃうじゃ。