.Cannot create an NSPersistentStoreCoordinator with a nil model

今天用coredata事,忽然遇到这个问题:找了一会终于发现问题所在,与大家分享一下

导致这个问题的原因是因为找不到.xcdatamodeld所致,不同的人可能遇到的问题不同

可能原因1: NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];

因为.cxdatamodeld经过编译之后会在.app中生成以个.momd文件,你可以查看一下model文件的名称与你创建的.cxdatamodeld文件名是否相同,不同的话通过URLForResource:@"Model" 名字

 可能原因2:系统中根本没有.cxdatamodeld文件,你可能说有啊,那就是没有连接的问题,你可以通过build phases->compile sources 查看.cxdatamodeld是否存在,不存在的点击+号,导入就可以了

如果你的工程中没有.cxdatamodeld文件的话,可以通过newFile->core data->data model 创建.cadatamodeld文件,不过需要导入系统<CoreData/CoreData.h>这个库,手动添加单个属性个两个方法,因为属性是readonly的,所有必须在.m中添加@synthesize生成get和set方法

问题解决后:可能会出现新的问题"The model used to open the store is incompatible with the one used to create the store";

这个时候吧沙盒里的东西清除一下就可以了,或者删除模拟器里的应用,再次运行就好了

时间: 2024-12-18 00:31:45

.Cannot create an NSPersistentStoreCoordinator with a nil model的相关文章

IOS开发常见错误整理

1.Cannot create an NSPersistentStoreCoordinator with a nil model 这是在执行到这段代码时引发的: 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 UIApplication *application = [UIApplication sharedApplication]; 4 id delegate=application.delegate; 5 self.context=[dele

iOS教程:如何使用Core Data – 预加载和引入数据

这是接着上一次<iOS教程:Core Data数据持久性存储基础教程>的后续教程,程序也会使用上一次制作完成的. 再上一个教程中,我们只做了一个数据模型,之后我们使用这个数据模型中的数据创建了一个表视图,我们还学习了如何测试数据模型的可行性,今天,我们来看看如何在应用启动的时候,将已经存在的数据载入或者引用到我们的程序中去. 请注意我们在上一次的教程中学习到的是直接通过操作SQLite数据库来加载数据,你当然可以一直使用这种方法,但是这个教程教授的方法更加优雅,更加合理. 在下一部分的教程中,

关于hibernate中提示can not create table ******

最近这两天,一直在搞hibernate,被 其中一个问题困扰了好久.在网上找了好久,一直都没有找到可行的方法,把jdk,jre,tomcat,装了拆,拆了装,可就是搞不好.实在是没有办法,又重新建了一个项目来测试,,从一点一滴开始试.所有的代码全部都手写,,,,可是问题依旧还在. 之所以一直没有找到解决办法,其实是自己的思维一直局限在一处,,,一直在想着hibernate只要把配置文件配置好,它就可以自己在数据库创建表结构,自己增删改查,相当的方便,可是自己 当时成功了,为什么这次却一而再再而三

RailsCast26 Hackers Love Mass Assignment rails中按params创建、更新model时存在的安全隐患

Mass assignment是rails中常用的将表单数据存储起来的一种方式.不幸的是,它的简洁性成了黑客攻击的目标.下面将解释为什么及如何解决. 上述表单为一个简单的注册表单.当用户填入name,点击提交时,一个新用户被创建.用户模型被如下定义: ruby create_table :users do |t| t.string :name t.boolean :admin, :default => false, :null => false end 当用户点击提交时,如下的action被执

backbone_Collection的create,add,push,unshift

1. model定义 var app = app || {}; (function () { 'use strict'; // User Model // ---------- app.User = Backbone.Model.extend({ defaults: { firstName: '', lastName: '', telNo:'', email:'' }, }); })(); 2.Collection定义 var app = app || {}; (function () { 'u

Django Model 定义语法

Django Model 定义语法 版本:1.7主要来源:https://docs.djangoproject.com/en/1.7/topics/db/models/ 简单用法 from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) 会自动生成SQL: CREA

CoreData详解与使用

iOS教程:Core Data数据持久性存储详解 就像我一直说的,Core Data是iOS编程,乃至Mac编程中使用持久性数据存储的最佳方式,本质上来说,Core Data使用的就是SQLite,但是通过一系列特性避免了使用SQL的一些列的麻烦,不仅如此,他还能够合理管理内存,反正好处很多,我们推荐使用,下面我们先对比它与其他数据持久化方式的优缺点. 1,它允许按照实体-属性-值模型组织数据,并以XML,二进制文件或SQLite数据文件的格式将其序列化,简单的说就是封装了我们将对象储存的系列化

CoreData 实例 --- 通讯录

要求:将数据存放于CoreData数据库中,包括联系人的姓名和电话号码,将数据取出,显示在view上 详细代码如下 首先导入#import<CoreData/CoreData.h> ViewController.h 文件 static NSManagedObjectContext * _context; //上下文 @interface TXLViewController () { UITableView * _tableView; NSMutableArray * _array; TXLTa

ngrok原理浅析(转载)

之前在进行 微信Demo开发时曾用到过 ngrok这个强大的tunnel(隧道)工具,ngrok在其github官方页面上的自我诠释是 "introspected tunnels to localhost",这个诠释有两层含义: 1.可以用来建立public到localhost的tunnel,让居于内网主机上的服务可以暴露给public,俗称内网穿透. 2.支持对隧道中数据的introspection(内省),支持可视化的观察隧道内数据,并replay(重放)相关请求(诸如http请