创建工程的时候,如果是基于windows的,就有选择支持coreData,其它的project temple则没有支持coreData选项。如果项目进行到一半,需要加如coreData的支持如何办呢? 我们创建基于windows的工程时,会看到在appdelegate里加入了一些代码,这些代码就是与coreData相关的,我们把它移到我们自己的工程当中,就可以支持coreData了。下面介绍一下具体步骤。
第一步:加入coredata.framework
第二步:在prefix.pch中加入#import <CoreData/CoreData.h>
第三步:
在.h中加入变量声明
在.h中加入方法声明与属性声明
在.m中加方法实现
第四步:加入.xcdatamodel文件
File->New File->Resource->Data Model
第五步: 创建coreData bundle
这是创建bundle了的样子
这是没有bundle的样子
选中第四步创建的文件,然后选择主菜单中的Design->Data Model->Add Model Version, 这一步必须进行,不然要crash.
具体原困就是,如果没有coreData bundle,就无法编译成momd文件,那么在- (NSManagedObjectModel *)managedObjectModel 这个方法中就无法找到momd文件,initWithContentsOfURL:modelURL 这个方法就crash。
参考:http://stackoverflow.com/questions/4518000/how-to-create-the-magic-xcdatamodeld-folder-package/4518137#4518137
http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/XcodeCoreDataTools/Articles/xcdCompilerFlags.html#//apple_ref/doc/uid/TP40006871-SW1
完成上面五步你就可以用coreData了。
补充:
- (NSManagedObjectModel *)managedObjectModel 这个方法当中我注掉了一行, 它与它上面两行功能一样。 如果把这个方法改为如下的话就不需要第五步操作,也不会crash.