是的。神奇的记录是简化你的生活!在已经创建的项目中使用它们没有什么难的。
请注意上下文。
MR 是自动管理、创建、合并上下文的。
当您开始使用它们时 - 任何与上下文相关的操作都应该通过 Magical Record 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 解析为实体时 - 写这个:
[Item MR_importFromObject:JSONToImport];
并且MR_importFromObject方法会自动创建新的Entity或者更新已有的。
每个实体的特定 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