从动态框架中读取sqlite文件

时间:2016-05-10 14:11:32

标签: objective-c sqlite core-data magicalrecord

我目前使用Magic记录和动态框架来处理我的数据库。但是,过去两天我一直坚持同样的问题。我无法获得具有嵌入式框架的主应用程序来创建任何类型的实体。上下文被创建但是当我尝试执行获取请求时,我找不到实体。我尝试使用共享容器来共享妈妈文件,尝试使用自带类的nsbundle,尝试对包ID进行硬编码并获取资源的url,仍然没有运气。妈妈文件肯定是在框架中复制的,因为我将它包含在复制源文件中。任何人都有运气好运吗?

尝试以下操作:(我认为我们需要sqlite文件)

NSURL *storeURL = [[NSBundle bundleWithIdentifier:@"bundleid"] URLForResource:@"model" withExtension:@"momd"];
[MagicalRecord setupCoreDataStackWithStoreAtURL:storeURL]

1 个答案:

答案 0 :(得分:0)

您的代码中存在错误,

.ui-menu .ui-menu-item a.ui-state-focus {
  margin: 0px;
}

使用MagicalRecord,初始化非常简单,

// this is data model, not Persistent Store URL
NSURL *storeURL = [[NSBundle bundleWithIdentifier:@"bundleid"] URLForResource:@"model" withExtension:@"momd"];
[MagicalRecord setupCoreDataStackWithStoreAtURL:storeURL]; // expect persistent store url

在MagicalRecordInternal.m中,你会发现一些很多灵感的代码,如下所示,

// which will collect and merge all data models in the main bundle 
[MagicalRecord setupCoreDataStackWithStoreNamed:@"my.sqlite"]

更多详情

如果您创建一个名为" tmp"的新 Swift 项目。使用coreData,您将在AppDelegate.swift中看到类似的内容。

// *modelClass* can be any class in your dynamic framework
+ (void) setDefaultModelFromClass:(Class)modelClass;
{
    NSBundle *bundle = [NSBundle bundleForClass:modelClass]; 
    NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:[NSArray arrayWithObject:bundle]];
    [NSManagedObjectModel MR_setDefaultManagedObjectModel:model];
}

没有名为lazy var managedObjectModel: NSManagedObjectModel = { // The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model. let modelURL = NSBundle.mainBundle().URLForResource("tmp", withExtension: "momd")! return NSManagedObjectModel(contentsOfURL: modelURL)! }() 的文件; Xcode创建的是tmp.momd。适当的方法是tmp.xcdatamodeld,它将搜索名为xx.momd

的所有合适的编译数据模型