Rails の Active Record ライクな APIが提供されている。以下 READMEからの転載。
NSArray *people = [Person findAll]; NSArray *peopleSorted = [Person findAllSortedByProperty:@"LastName" ascending:YES]; Person *person = [Person findFirstByAttribute:@"FirstName" withValue:@"Forrest"];
フェッチ
結果をブロックで処理できる。
[[Person findAll] each:^(Person* p) { NSLog(@"Found %@",p.name); }];
NSArray* fatherArray = [[Person findAll] map:^id(Person* p) { return p.father; }]; [fatherArray each:^(Person* p) { NSLog(@"Found %@",p.name); }];
レコードの作成
Person *myNewPersonInstance = [Person createEntity];
レコードの削除
Person *p = ...; [p deleteEntity];
別スレッド実行用のメソッドもあり。専用の NSManagedContextObjectをスレッド毎に用意して処理している。
+ (void) performSaveDataOperationWithBlock:(CoreDataBlock)block; + (void) performSaveDataOperationInBackgroundWithBlock:(CoreDataBlock)block;
これまたブロック構文も用意されている(便利)。
typedef void (^CoreDataBlock)(NSManagedObjectContext *);
- - - -
結構便利なメソッドが提供されているので、Core Data を使う場合に利用を検討したい。
Responses
Leave a Response