はい。マジカルレコードはあなたの人生をシンプルにします! 既に作成されたプロジェクトでそれらを使用するのは難しいことではありません。
コンテキストには十分注意してください。MR は自動的に管理され、作成され、コンテキストがマージされます。そして、あなたがそれらを使い始めるとき - あなたが魔法の記録 MR_メソッドを通して行うべきコンテキストを持つすべてのアクション。
Magical Record を構成するための主な手順は次のとおりです。
- CocoaPods を介して Magical Record を追加: Podfile 行に追加:
pod 'MagicalRecord'
(実行することを忘れないでくださいpod install
)
- 開始アプリケーションで 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