我们制作了一个可可触摸框架,该框架从本地数据库中保存并获取数据。我们为此使用了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)
}