【问题标题】:How to add magicalRecord to an existing project with Core Data?如何使用 Core Data 将 magicRecord 添加到现有项目中?
【发布时间】:2013-08-29 16:11:16
【问题描述】:

我有一个处于开发后期的可可项目。我使用核心数据和绑定。

最近我想测试magicRecord,只是因为它似乎可以帮助我减少大量繁琐的coredata代码甚至子类化实体。

这似乎是一个使用 cocapods 的简单实现。

问题

在现有的 CoreData 项目中实现magicRecord 是个好主意吗?如果是这样,如何最好地完成?我主要考虑我现有的商店和代码。

谢谢

【问题讨论】:

    标签: cocoa core-data magicalrecord


    【解决方案1】:

    是的。神奇的记录是简化你的生活!在已经创建的项目中使用它们没有什么难的。

    请注意上下文。 MR 是自动管理、创建、合并上下文的。 当您开始使用它们时 - 任何与上下文相关的操作都应该通过 Magical Record 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 解析为实体时 - 写这个:

        [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

    【讨论】:

    • 感谢您的回答!所以 MR 不会干扰我的可可绑定或其他任何事情?
    猜你喜欢
    • 2011-12-31
    • 2020-11-04
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2011-01-02
    • 2017-12-23
    相关资源
    最近更新 更多