通过融合我在这个论坛上读到的一些东西以及我在 Apple 文档中找到的一些其他东西,我试图找到一个正常运行的 NSManagedObjectContext。所以,我写了以下代码:
NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergeModelFromBundles:[NSArray arrayWithObject:[NSBundle mainBundle]]]; NSPersistentStoreCoordinator *persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); NSString *basePath = ([paths count]>0 ? [paths objectAtIndex:0] : nil); NSURL *storeUrl = [NSURL fileURLWithPath:[basePath stringByAppendingPathComponent:@"meetSigns.sqlite"]]; NSError *persistentError; if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&persistentError]) { NSLog([persistentError 描述]); } NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] init]; [managedObjectContext setPersistentStoreCoordinator:persistentStoreCoordinator];
我必须准确地说,一开始我的应用程序没有数据模型,所以我手动添加了它,现在我有一个 .xcdatamodeld 文件。我使用该界面用我的实体和关系填充模型。
无论如何,我找不到 .sqlite 文件,即使它在我发布的片段中是必需的。也许,因此,我收到以下错误:
Error Domain=NSCocoaErrorDomain Code=512 "The operation couldn’t be completed. (Cocoa error 512.)" UserInfo=0x74d6dd0 {reason=Failed to create file; code = 2}
如何创建这个 .sqlite 文件?我可以从数据模型中自动生成它吗?我尝试同时使用项目名称和数据模型之一,在这两种情况下都添加了 .sqlite 扩展名,但我得到了同样的错误。
由于这个错误,我也得到以下信息:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“此 NSPersistentStoreCoordinator 没有持久存储。它无法执行保存操作。
你能告诉我我错在哪里了吗?你能告诉我如何解决混合 .sqlite 文件的问题吗?
感谢帮助