【发布时间】:2024-01-13 06:51:01
【问题描述】:
伙计们,所以我有这个预加载器(Xcode 命令行实用程序项目),它可以预加载我的 iPhone 应用程序的 sqlite 商店,它一直工作得很好,因为它总是给我一个不兼容的商店错误。因此,我不会在预加载器中引用 .mom 文件,而是在预加载器中创建它以希望绕过这个问题。这就是我的问题所在,我如何确定预加载器将我创建的 .mom 文件存储在哪里?有什么方法可以告诉它放在哪里?
下面是一些相关的sn-ps代码。
从 iPhone 应用程序中: /** 返回应用程序的托管对象模型。 如果模型尚不存在,则通过合并应用程序包中找到的所有模型来创建它。 */ - (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
//managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
NSURL *modelURL = [NSURL fileURLWithPath:@"path/to/Parking.mom"];
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
#pragma mark TODO change below line to search for your project's mom file
NSString *path = [[NSBundle mainBundle] pathForResource:@"Parking" ofType:@"mom"];
return managedObjectModel;
}
从预加载器(Xcode 命令行实用程序项目)中:
NSManagedObjectModel *managedObjectModel(NSString* momPath) {
static NSManagedObjectModel *model = nil;
if (model != nil) {
return model;
}
model = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
//NSURL *modelURL = [NSURL fileURLWithPath:momPath];
//model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return model;
}
如果您仔细查看代码,您会发现我在哪里交换了每个文件中的内容。
提前致谢!
【问题讨论】:
标签: objective-c cocoa core-data ios4 preloader