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

问题描述 投票:1回答:2

我们制作了一个可可触摸框架,用于保存和提取本地数据库中的数据。我们使用了核心数据和MagicalRecord库。

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

以下问题类似,但对于静态库 - Using magicalrecords library in custom static framework iOS

我们尝试了接受的答案并没有解决问题,因为cocoa touch框架不存在框架束路径

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

ios objective-c core-data magicalrecord cocoa-touch
2个回答
2
投票

您可以在框架内设置Core Data Stack,并使用框架内的以下行初始化它。

 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];

0
投票

谢谢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)
}
© www.soinside.com 2019 - 2024. All rights reserved.