如何在cocoa触摸框架中使用MagicalRecord库?
How to use MagicalRecord Library in cocoa touch framework?
我们制作了一个 cocoa 触摸框架,可以从本地数据库保存和获取数据。我们为此使用了核心数据和 MagicalRecord 库。
当我们将我们的框架与某些应用程序集成并尝试将数据添加到数据库时,我们遇到了崩溃,表明该实体不存在。因此,我们尝试打印实体列表并得到一个空数组。
下面的问题类似,但那是针对静态库的——
Using magicalrecords library in custom static framework iOS
我们尝试了接受的答案,但它没有解决问题,因为 cocoa 触摸框架
的框架包路径不存在
对于cocoa触摸框架,有人有什么解决方案吗?
您可以在框架内设置核心数据栈,并在框架内使用以下几行初始化它。
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!奇迹般有效。
这是代码的 swift 版本:
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)
}
我们制作了一个 cocoa 触摸框架,可以从本地数据库保存和获取数据。我们为此使用了核心数据和 MagicalRecord 库。
当我们将我们的框架与某些应用程序集成并尝试将数据添加到数据库时,我们遇到了崩溃,表明该实体不存在。因此,我们尝试打印实体列表并得到一个空数组。
下面的问题类似,但那是针对静态库的—— Using magicalrecords library in custom static framework iOS
我们尝试了接受的答案,但它没有解决问题,因为 cocoa 触摸框架
的框架包路径不存在对于cocoa触摸框架,有人有什么解决方案吗?
您可以在框架内设置核心数据栈,并在框架内使用以下几行初始化它。
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!奇迹般有效。 这是代码的 swift 版本:
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)
}