如何在可可触摸框架中使用MagicalRecord库



我们制作了一个可可触摸框架,该框架从本地数据库中保存并获取数据。我们为此使用了Core-Data和MagicalRecord库。

当我们将框架与某些应用程序集成并尝试将数据添加到数据库中时,我们会遇到崩溃,表明该实体不存在。因此,我们尝试打印实体列表并获得一个空数组。

以下问题相似,但这是静态库 - 在自定义静态框架iOS

中使用MagicalRecords库

我们尝试了可接受的答案,但没有解决问题,因为可可触摸框架不存在框架束路径

在可可触摸框架的情况下,有人有任何解决方案吗?

您可以在框架内设置核心数据堆栈,并在框架内使用以下行进行初始化。

 NSArray *bundles = @[[NSBundle bundleWithIdentifier:YOUR_FRAMEWORKS_BUNDLE_IDENTIFIER], [NSBundle mainBundle]];
[MagicalRecord setShouldAutoCreateManagedObjectModel:NO];
[NSManagedObjectModel MR_setDefaultManagedObjectModel:[NSManagedObjectModel mergedModelFromBundles:bundles]];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:YOUR_COREDATA_MODEL_NAME];

感谢Krishnaca!奇迹般有效。这是代码的快速版本:

func setupCoreDataStack(_ storeFile:String){
    guard let frameworkBundle = Bundle.init(identifier: "bundleID") else { return }
    MagicalRecord.setShouldAutoCreateManagedObjectModel(false)
    NSManagedObjectModel.mr_setDefaultManagedObjectModel(NSManagedObjectModel.mergedModel(from: [frameworkBundle,Bundle.main]))
    MagicalRecord.setupCoreDataStack(withAutoMigratingSqliteStoreNamed: storeFile)
}

最新更新