u16suzuの blog

日々学んだことのメモブログです。

MagicalRecordメモ

define をpchにでも書いておくとメソッドの prefix(MR_部分) を省略できるようになる.

(#importの前に書く必要がある。)

#define MR_SHORTHAND
#import <CoreData+MagicalRecord.h>

context 取得

NSManagedObjectContext *context = 
[NSManagedObjectContext defaultContext];

オブジェクト生成

Cat* magicalCat1 = [Cat createEntity];

オブジェクト削除

NSManagedObjectContext *context = [NSManagedObjectContext defaultContext];
MRUser*mr_user = self.users[indexPath.row];
[mr_user deleteEntity];
[context saveToPersistentStoreAndWait];

update

mr_user.name = @"hoge";
[context saveToPersistentStoreAndWait];

オブジェクトを作ったけど保存しない(new したけどDBには保存しない)

mr_user = [MRUser createEntity];
// deleteEntityしないと、他のところでsave したときに一緒に保存されてしまう。
[mr_user deleteEntity];

save

[context saveOnlySelfAndWait];  // block する
[context saveToPersistentStoreAndWait]; // blockしない

find all

self.users = [MRUser findAll];

全データ削除

[self allDeleteCoreData];