Tag: MagicalRecord

目次

参考情報

プロジェクトの作成

mogeneratorのインストール

  • 別に必須でもないけど便利なので入れておく。mogeneratorを参考に。

プロジェクトの作成

  • Empty Applicationを選択。Use CoreDataにチェックを入れてプロジェクトを作成。名前はMagicalRecordDemoとでも。ARCは使用する。一端終了。
  • プロジェクトのルートにPodfileを作る。
    platform :ios
    pod 'MagicalRecord'
    
  • pod実行
    pod install

モデルの作成

  • MagicalRecordDemo.xcodeprojを開く。MagicalRecordDemo.xcdtamodeldを編集し、Personという名前のエンティティを追加。
  • PersonのAttributesとして、name(typeはString)を追加。対応するクラスをPersonとしておく。
  • mogeneratorを実行。
    mogenerator -m MagicalRecordDemo/MagicalRecordDemo.xcdatamodeld/MagicalRecordDemo.xcdatamodel/ -O MagicalRecordDemo/Models --template-var arc=true
  • Add Filesで、Modelsフォルダ以下を一気にとりこむ。

使ってみる

  • MagicalRecordDemo-Prefix.pchを編集して以下を追加。#define MR_SHORTHANDするとメソッドが簡単な名前で呼び出せるようになるっぽい。
    #ifdef __OBJC__
        #import <UIKit/UIKit.h>
        #import <Foundation/Foundation.h>
        #import <CoreData/CoreData.h>
    
    //    #define MR_SHORTHAND
        #import "CoreData+MagicalRecord.h"
    
    #endif
    
  • とりあえず保存して、表示するサンプル。実行するごとにPersonが増えていく。
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [MagicalRecord setupCoreDataStack];
        
        NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
        
        //Personを一つ保存
        Person *person = [Person MR_createEntity];
        person.name = @"tanaka";
        [context MR_saveToPersistentStoreAndWait];
        
        //保存されているPersonを全部表示
        NSArray *result = [Person MR_findAll];
        int i = 0;
        for (Person *p in result) {
            NSLog(@"%d name=%@",i, person.name);
            i++;
        }
        
        
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        return YES;
    }
    

Tips

Entityを削除する

  • 例えばLogエンティティを全削除する場合
        [Log MR_truncateAll];
        [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
    

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-04-13 (水) 16:46:19 (1074d)