是的。Magical Record可以简化您的生活!在已经创建的项目中使用它们非常容易。
只需非常注意上下文。
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];
}
当您想将JSON解析为实体时 - 编写此代码:
[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