[Info] Core Data 用 Active Record ライブラリ

2011年11月16日水曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

Ruby on Rails の Active Record にインスパイアされて作成されたライブラリ。Core Data をベースに Active Record 相当の APIを提供する。


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

人気の投稿(過去 30日間)