无法创建带有 nil 模型错误的 NSPersistentStoreCoordinator

2024-07-03

我有一个运行完美的 coreData 数据模型文件。由于一些特殊要求,我deleted旧的数据模型文件并创建另一个数据模型文件完全相同的实体。有实体没有变化来自之前的数据模型。我已将其作为不同的捆绑并从该包中引用它。

用于创建 ManagedObjectModel 的代码

   if (managedObjectModel_ != nil) {
    return managedObjectModel_;
}
NSBundle *newBundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"dataBundle" withExtension:@"bundle"]];   
NSString *modelPath = [newBundle pathForResource:@"DataHouse" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

return managedObjectModel_;

该应用程序运行良好直到一段时间,突然(随机)我收到一条错误消息

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an NSPersistentStoreCoordinator with a nil model'
*** First throw call stack:`(0x62e052 0x26a9d0a 0xf6e86d 0x64fd 0x624e 0x381b 0x79c9b 0x65f2d 0x1881e0f 0x1882589 0x186ddfd 0x187c851 0x1827322 0x62fe72 0x160892d 0x1612827 0x1598fa7 0x159aea6 0x163437a 0x16341af 0x602966 0x602407 0x5657c0 0x564db4 0x564ccb 0x2791879 0x279193e 0x17e8a9b 0x28a2 0x2815)`

创建持久存储协调器的代码

 if (persistentStoreCoordinator_ != nil) {
    return persistentStoreCoordinator_;
}

NSURL *storeURL = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"DataHouse.sqlite"]];

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:

                         [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,

                         [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error = nil;

persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {

    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}    

return persistentStoreCoordinator_;

此错误是随机发生的,但每次运行应用程序时都非常一致。 此时我完全感到困惑和震惊......我在论坛中看到了同样的问题,但我想我的情况是一个特殊的情况。我很确定模型路径每次我打印上面的代码片段中提到的变量时,它都会很好。

注意:上面的代码片段不是 AppDelegate 类的一部分。它们是包含所有 Coredata 方法的特殊类的一部分


首先验证 ManagedObjectModel_ 是否有效,您可以使用调试器或调用它的方法,例如

NSLog(@"%@", [managedObjectModel_ entities]);

验证您的数据模型是否正常。该调用应显示模型中所有实体的数组。接下来检查您的持久存储路径是否指向正确的位置。尝试这个:

NSLog(@"%@", [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"DataHouse.sqlite"]);

最后(我认为这是需要做的,因为它发生在我身上)转到磁盘上存储 .sqlite 文件的位置:

~/Library/Application Support/iPhone Simulator/5.0/Applications/{your app id}/Documents

并删除 .sqlite 文件,以便 Core Data 在您下次构建时生成新的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法创建带有 nil 模型错误的 NSPersistentStoreCoordinator 的相关文章

  • 仅从 GPS 获取 iPhone 上的位置 - 而不是 wifi 网络

    我正在创建一个使用位置的应用程序 一切都很顺利 除了一件事 当我回到家时 我的 iPhone 连接到我的本地 wifi 网络 而不是使用手机中的 GPS 获取我的位置 而是尝试通过找出我的 wifi 网络连接到的位置来获取位置 如果我关闭
  • UIWebView 中自动填充用户名和密码

    我正在为我做一个非常简单的应用程序 当我启动这个应用程序时 它只会将我带到这个网页https social tre it expert https social tre it expert 我想自动登录 那么有没有办法自动填写用户名和密码
  • 如何对字符串进行 URL 编码

    我有一个 URL 字符串 NSString 带有空格和 人物 如何对整个字符串 包括 符号和空格 很遗憾 stringByAddingPercentEscapesUsingEncoding并不总是 100 有效 它对非 URL 字符进行编码
  • 无法使用设备上的沙箱测试用户登录

    尝试进行一些应用程序内购买测试 因此我在 itunesconnect 上创建了一个沙箱测试器 但是当我尝试在我的设备上以该用户身份登录时 出现错误 不允许创建 Itunes 帐户 Apple ID 目前无法用于 iTunes 商店 请 稍后
  • 如何给 UIButton 着色?

    我正在向我的 iPhone 用户界面添加自定义按钮 并希望它们具有 Apple 应用程序的玻璃外观 我有一个很好的默认玻璃图像 但我不想为我想要的每种色调 红色 绿色 蓝色等 都有一个单独的图像 有没有办法加载灰度PNG并将其调整为我想要的
  • Spotify 会话管理

    我在我的应用程序中有一个 Spotify 登录并尝试进行自动登录 登录功能 func getSpotifyToken fromController controller UIViewController success spotifyTok
  • Xcode 6 具有 Swift 超慢打字和自动完成功能

    是只有我还是 Xcode 6 6 0 1 with Swift 似乎是超级慢当您键入代码时 尤其是使用自动完成功能时 一个普通的 Objective C 类 即使在 Swift 项目中 工作原理也几乎和以前一样 所以是 Swift 杀死了它
  • sqlite+fmdbvacuum命令后内存泄漏(?)

    我通过 FMDB 包装器在我的应用程序中使用 sqlite 在调用 VACUUM 之前 我的应用程序中的内存使用量为 2 25 MB myFmdb executeUpdate VACUUM 后记是 5 8 MB 我似乎无法回收内存 真空后
  • UIDatePicker 在 iOS 9 中无法正常显示

    我没有使用自动布局 这就是 UIDatePicker 在 iOS 9 上我的应用程序中的显示方式 选择器在 iOS 8 中看起来完美无缺 但问题仅存在于 iOS 9 中 知道如何解决此问题 P S 使用 auto布局目前对我来说不是一个解决
  • UICollectionView PerformBatchUpdates:如果视图需要布局,则意外断言?

    如果我打电话 UICollectionView performBatchUpdates 从内部viewWillAppear 里面viewDidAppear 在这些方法之间 或者每当集合视图尚未由更大的 UIView 视图层次结构布局时 集合
  • 什么是“响应 backboardd 的终止而终止”?

    我在滑块的帮助下使用一段代码在视图上添加阴影 滑块设置为 15 到 15 此代码在以下情况下效果很棒slider value为正 但如果为负 应用程序将停止工作 崩溃日志很奇怪Terminating in response to backb
  • 如何刷新 WatchApp 复杂功能

    所以我正在尝试更新headerTextProvider 每一秒都有一个Timer scheduledTimer withTimeInterval 1 repeats true timer in 我想这不是正确的做法吗 MY STUFF HE
  • 像 peek and pop 一样手动振动 iPhone 6S?

    如何手动触发类似单击的振动 就像使用 peek pop 或应用程序快捷方式时发生的振动一样 这个方法很容易实现 而且效果非常好 我自己尝试过 import AudioToolbox AudioServicesPlaySystemSound
  • 如何才能运行性能测试十次以上?

    默认情况下 Xcode 性能测试会运行十次 我的结果是这十次测试的平均值 问题是每次运行时平均结果变化很大 因此我必须运行测试至少五次才能获得收敛结果 这既乏味又耗时 有没有办法配置 XCode 或单元测试本身运行十次以上 XCTestCa
  • 删除/重置核心数据中的所有条目?

    您知道有什么方法可以删除存储在核心数据中的所有条目吗 我的架构应该保持不变 我只是想将其重置为空白 Edit 我希望以编程方式执行此操作 以便用户基本上可以点击reset button 您仍然可以使用 NSFileManager remov
  • RestKit:如何获取简单的 JSON 字符串数组?

    我应该如何使用 RestKit 来获取像这样的 JSON 字符串数组 Paris London Brussels New York 我尝试进行对象映射 但由于没有关键路径或属性 我不知道要映射什么 我什至不需要映射 结果可能只是一个数组或字
  • 在 Xamarin.Forms 中添加方向更改布局

    我需要实现的是 在将屏幕从纵向更改为横向时向现有页面添加布局 我已经成功地使用检测方向变化void OnSizeAllocation 双倍宽度 双倍高度 但我无法为此事件添加布局 我的示例 C 代码是 public class MyLayo
  • 同时在不同层中使用多个 CAKeyframeAnimation

    现在有人知道如何使用 CAKeyframeAnimation 同时对多个图层进行动画处理吗 每个层都有自己的 CAKeyframeAnimation 对象 看看下面的代码 我有一个接收对象 创建 CAKeyframeAnimation 并将
  • 删除 iOS 中的后台位置警报?

    我正在编写一个跟踪用户位置的导航应用程序 为了继续显示有关路线的通知 当手机锁定 接听电话等时 我还需要在应用程序处于后台时继续跟踪位置 Capabilities gt Background Modes gt Location update
  • IOS - React Native - 未处理的 JS 异常:SyntaxError

    每当我创建新的 React Native 项目时 我都会遇到问题 显示红色屏幕 并在 xcode 控制台中收到以下错误消息 嗨 我有同样的问题 在这里找到了解决方案 https github com facebook react nativ

随机推荐