読者です 読者をやめる 読者になる 読者になる

pixyzehn blog

iPhone App, Mac App, Programming, Web service, Tool, Evernote, etc

MogeneratorとMagicalRecordでCoreDataを使ってみる

http://www.flickr.com/photos/73344268@N00/4142549367
photo by junyaogura


Mogenerator + MagicalRecordでCoreDataが簡単にできたのでその手順を紹介します。


まずを入れていなければMogeneratorをインストールします。

brew install mogenerator


CocoaPodsからインストールしたいところだが、エラーが出てしまうのでgithubからcloneしていれましょう。


https://github.com/magicalpanda/MagicalRecord

#import "CoreData+MagicalRecord.h"


こちらをヘッダに追記すれば、MagicalRecordは使えます。


Xcodeからxcdatamodeldを設定していきます。


これはCoredataを使う場合とやることは同じだと思います。


参考

http://d.hatena.ne.jp/glass-_-onion/20111124/1322091736


そしてMogeneratorを使用してさくっとファイルに出力しましょう。

mogenerator -m ******.xcdatamodeld/********.xcdatamodel/ -O ./ --template-var arc=true


これだとターミナル上からは****.h,****.m,_****.m,_****.hのファイルは見れるのですが、Xcodeには認識されていないのでドラッグアンドドロップでXcodeに持っていく必要がありました。


まずセットアップします。

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    
    //MagicalRecordによるCoreDataの初期化
    [MagicalRecord setupCoreDataStackWithStoreNamed:@"db.sqlite"];
    
    return YES;
}



値を入れていきます。

MGBook *book = [MGBook createEntity];
book.name = @"Objective-C";
book.bookId = @(123);

[context saveToPersistentStoreAndWait];


保存します。

[[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait]; 


データを永続化する処理をいれます。

- (void)applicationWillTerminate:(UIApplication *)application
{
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    
    //アプリケーション終了時に正しくデータを永続化するため
    [MagicalRecord cleanUp];
}


環境設定に少し時間がかかりますが、Coredataと比べてかなり使いやすくなっていると思います。


参考

http://qiita.com/key/items/35569f334528e225531e


http://yaakaito.org/blog/2013/04/01/magical-record-setup/


iOS Core Data徹底入門

iOS Core Data徹底入門