4

開発の後期段階にあるココア プロジェクトがあります。Core Data とバインディングを使用します。

最近、magicalRecord をテストしたいと思っていました。これは、多くの面倒なコアデータ コードやエンティティのサブクラス化を最小限に抑えるのに役立つように思われるからです。

コカポッドを使用した簡単な実装のようです。

質問

MagicRecord を既存の CoreData プロジェクトに実装するのは良い考えですか? 私は主に既存のストアとコードについて考えています。

ありがとう

4

1 に答える 1

17

はい。マジカルレコードはあなたの人生をシンプルにします! 既に作成されたプロジェクトでそれらを使用するのは難しいことではありません。

コンテキストには十分注意してください。MR は自動的に管理され、作成され、コンテキストがマージされます。そして、あなたがそれらを使い始めるとき - あなたが魔法の記録 MR_メソッドを通して行うべきコンテキストを持つすべてのアクション。


Magical Record を構成するための主な手順は次のとおりです。

  1. CocoaPods を介して Magical Record を追加: Podfile 行に追加: pod 'MagicalRecord'
    (実行することを忘れないでくださいpod install)
  2. 開始アプリケーションで managedObjectContext をセットアップします。

AppDelegate.m

    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [MagicalRecord setupCoreDataStack];
        _managedObjectContext = [NSManagedObjectContext MR_defaultContext];
        //other your code
    }

そして、JSON を Entity に解析したい場合は、次のように記述します。

    [Item MR_importFromObject:JSONToImport];

また、MR_importFromObjectメソッドは、新しいエンティティを自動的に作成するか、既存のエンティティを更新します。

各エンティティの特定の ID は、エンティティ名と「ID」の属性です。(たとえば、"Item" という名前のエンティティの場合、一意の属性名は"ItemID"になります) または、"mappedKeyName" という名前の特別なキーを指定して、一意の ID を設定できます。

3.変更を保存します。

[_managedObjectContext MR_saveToPersistentStoreAndWait];

4.データをフェッチします。

NSArray items = [Item MR_findByAttribute:@"itemID" 
                               withValue:"SomeValue" 
                              andOrderBy:sortTerm 
                               ascending:YES 
                               inContext:[NSManagedObjectContext MR_defaultContext]];

5.最後に、アプリを終了する前に、クリーンアップ メソッドを使用する必要があります。

[MagicalRecord cleanUp];

マルチスレッドの使用について:

メインスレッドではないコンテキストを使用するには、すべてのスレッドで作成する必要があります。localContext

このような:

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextWithParent:[NSManagedObjectContext MR_defaultContext]];
//do thing with localContext - fetch, import, etc.

MR の使用に関する非常に優れたチュートリアルは次のとおりです: cimgf: importing-data-made-easy

于 2013-09-02T11:18:19.297 に答える