建立一个实体之后,其实就已经用来保存实体的实例化对象了。但是有不少情况我们的实体并没有很单纯,可能我们需要在实体中保存的不仅仅是属性,而是一个个实体。这时候就需要将这一个个实体和主实体关联起来。 在窗口底部有一排功能按钮,最右侧的按钮可以选择实体的展示方式。
我们将之切换到group样式。
按住Ctrl键拖动实体,可以将两个实体关联起来。
关联之后,将实体展示切换会 list 模式,在relationship中看到两个实体之间的关联,设置相对应地名字。同时在右侧栏中看到一些设置。调整关联中的一些属性,比如删除规则,关联类型,等等。
创建好实体和关联关系之后,我们就该创建这些实体的类了。选中 项目名.xcdatamodeld 文件,菜单中选择 EIdtor -> CreartNSmangerObject ,选择保存的位置即可
最后看到创建好的实体文件。我们将这些看着跟一般的类一样即可。 只不过,它包含了存储到CoreData 的API。
上面讲到了attribute只能选择部分类型。
如果是不支持的类型可以将之设置成 Transformable,然后在项目中创建Transformable的子类,实现Transformable类型对要转化的类型的转换。这种方式稍稍有点繁琐。
在这里提供一个小技巧。
在Entity+CoreDataClass文件中,我们可以自定义一些属性。 通过设置其get和set方法,实现存储和转化。具体操作如下:
假如我们需要保存一张图片大CoreData,显然直接保存是不可能的,我们可以在实体放置一个image属性,将其类型设置为 NSData。
再在创建的实体的文件处理如下:
尽管苹果公司对coreData做了很大的优化,但是使用起来还是略显麻烦,同学们可以找一些比较好的第三方框架。比如我目前正在使用的MagicalRecord 就很不错哦。
来源: http://www.bubuko.com/infodetail-2311083.html