CoreData 是 Cocoa 平台上用来管理模型层数据和数据持久化的一个框架,也是一个数据库存储框架。CoreData 里相关的概念比较多,初学者肯能会有点懵逼。但是呢,ios10之后的coreData可以说是非常简单的,比数据库操作要简单很多倍,但是但是我不告诉你们,这里我主要说ios之前如何使用coreData,当然也适合ios10之后。想了解ios之后coreData的使用的同学可以查下资料,真的非常简单哦。闲话不多说,上干货:
首先比较下CoreData与sqlite
要是在以前,我肯定推荐sqlite,不但能够跨平台使用,节约开发周期,而且ios大神还封装了FMDB,使用起来更简单;那时候CoreData用起来真的让人崩溃
现在呢,我推荐使用CoreData,真的很棒,而且代码量相比以前简单了很多
一:创建CoreData

我这里教大家不自动创建,那个Use CoreData我们不勾选
第二步:

找到Date Model这个文件并next
注意了!!!!!!

创建CoreData这个文件的名称一定要跟工程名一致,不然会报错哦!!!!
然后我们就创建好了,看到下面那个文件就表明成功了

又要注意了!!!!!!
由于现在手动创建coreData文件默认都是swift版本的,所以这个文件还不能用哦,要怎么改呢

选中右边的default之后,看最右边的操作栏

看到没有,将swift换成oc就行了,这时候CoreData就真正创建好了,也可以使用了
二:使用CoreData
创建好了,就该用了,怎么用呢?
第一步:创建表

coreData文件下面有个Add Entity的按钮,点击它就创建了一个空表
然后修改表名

这时候就创建了一个名叫Student的表了
然后就可以在这张表里添加属性了

我创建了5个属性,类型也标明了。重点我说两个:像图片,文件,视频要存储到CoreData的话必须转成二进制(Data),另外Transformable这TM什么玩意?怎么没见过这类型?别急嘛!这是一个可变的类型,想要存储像字典,数组,集合这些类型就必须要用到这个可变类型存储了,大家要记住哦!
表也创建好了,接下来就是如何存储了!!!!!!
但是,还有一点要说,当我们创建这些属性的时候,其实系统本身同时帮我们生成了模型文件,不过这模型文件是隐藏的,我们看不到。这是因为苹果不希望我们修改这些模型文件,所以不然我们看到,不过呢,我本人喜欢自己手动创建,怎么做呢?

右侧有个Class的类,它有个Codegen的属性,我们选择none之后系统就不会帮我们创建了
接下来就是我们自己创建模型文件了




这时候模型文件就创建好了。接下来我们就可以做数据存储了
具体的怎么存储我已经写在demo里面了,oc跟swift的版本都有
里面我讲的算比较详细的了,喜欢的朋友可以去看看,另外本人水平有限,如若有错,希望指正
网友评论