「CoreData」カテゴリーアーカイブ

初めてのCoreData


初心者にとってCoreDataは難解です。空のプロジェクトからいろいろ頑張ってみましたが、どうにも身動きがとれません。ということで、CoreDataを使ったひな形をベースにちょこっと作業してみました。

警告:この記事には抜けている情報もあるので実際に試したい場合は、末尾に添付しているプロジェクトファイルと合わせてご利用下さい。

ベースとなるプロジェクト

新規プロジェクトで、Master-Detailアプリを作成します。もちろんCoreDataは有効化しておきます。メモリ管理のARC(Use Automatic Reference Counting)も有効化しておきます。極力楽をしたいので。

作成したプロジェクトで右上のプラスボタンをタップするとレコードが追加されていきます。追加されたレコードをタップすると詳細画面へ移動、戻るボタンで一覧表示に戻ります。

改造してみた

タイムスタンプが表示されるだけだとつまらないので、表示内容を書き換えてみました。

1.データモデルを変更

MyCoreData.xcdatamodeld を編集します。timestampを消して、titleを追加します。(スクリーンショットにはbodyも写っていますが、titleだけ足して下さい。)

2. xibを編集

DataDetailViewController を編集します。UILabelを消して、UITextFieldを追加しました。このUITextFieldにtitleが表示されます。xibの変更に合わせてDataDetailViewControllerのOutletやらPropertyを適宜かきかえます。

3. ソースコードを書き換え

timestampという文字列を検索し、titleに書き換えていきます。4,5箇所書き換えればいいはず。

4. DataDetailViewのviewWillDisappearで保存

詳細表示で値を書き換えて一覧表示に戻る際にデータを保存します。

- (void)viewWillDisappear:(BOOL)animated
{
    NSManagedObject * managedObject = (NSManagedObject *)self.detailItem;
    [managedObject setValue:self.titleTextField.text forKey:@"title"];
    [super viewWillDisappear:animated];
}

動いた

詳細画面で書き換えた内容が、一覧画面にも自動反映されました。便利です。

ダウンロード

最終状態のプロジェクトを添付しています。iOS5.0以降でご確認下さい。
ダウンロード: MyCoreData