Mik*_*ael 4 cocoa core-data magicalrecord
我有一个可可项目正处于开发的后期阶段.我使用Core Data和绑定.
最近我想测试magicalRecord,因为它似乎可以帮助我减少很多繁琐的coredata代码甚至是子类化实体.
这似乎是一个使用cocapods的直接实现.
题
将magicalRecord实现到现有的CoreData项目是一个好主意,如果是这样,它最好怎么做?我主要考虑的是我现有的商店和代码.
谢谢
sky*_*der 17
是.神奇的记录简化了你的生活!在已创建的项目中没有什么难以使用它们.
只是要小心上下文.MR自动管理,创建,合并上下文.当你开始使用它们时 - 任何带有上下文的动作都应该通过Magical Record MR_方法来完成.
pod 'MagicalRecord'pod install)AppDelegate.m
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[MagicalRecord setupCoreDataStack];
_managedObjectContext = [NSManagedObjectContext MR_defaultContext];
//other your code
}
Run Code Online (Sandbox Code Playgroud)
当你想要将JSON解析为实体时 - 写下:
[Item MR_importFromObject:JSONToImport];
Run Code Online (Sandbox Code Playgroud)
并且MR_importFromObject方法将自动创建新实体或更新现有实体.
每个实体的特定ID是您的实体名称加上"ID"的属性.(例如,如果名为"Item"的实体 - 唯一属性名称为"ItemID"),或者您可以指定名为"mappedKeyName"的特殊键并设置您的唯一ID.
3.保存更改:
[_managedObjectContext MR_saveToPersistentStoreAndWait];
Run Code Online (Sandbox Code Playgroud)
4.获取数据:
NSArray items = [Item MR_findByAttribute:@"itemID"
withValue:"SomeValue"
andOrderBy:sortTerm
ascending:YES
inContext:[NSManagedObjectContext MR_defaultContext]];
Run Code Online (Sandbox Code Playgroud)
5.最后,在你的应用程序退出之前,你应该使用清理方法:
[MagicalRecord cleanUp];
Run Code Online (Sandbox Code Playgroud)
要在非主线程中使用上下文 - 您必须localContext在每个线程中创建.
像这样:
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextWithParent:[NSManagedObjectContext MR_defaultContext]];
//do thing with localContext - fetch, import, etc.
Run Code Online (Sandbox Code Playgroud)
这是一个非常好的MR使用教程:cimgf:imports-data-made-easy
| 归档时间: |
|
| 查看次数: |
3308 次 |
| 最近记录: |