Swift:在Core Data中存储自定义类的数组

Swift:在Core Data中存储自定义类的数组,第1张

概述我是Core Data的新手,但对于我的新项目,我想将我的数据保存到Core Data. 我想创建一个包含几个自定义数组的Reptile类.没有核心数据我会有这样的事情: import Foundationimport UIKitclass Reptile_ { private var _name: String? private var _dateOfBirth: St 我是Core Data的新手,但对于我的新项目,我想将我的数据保存到Core Data.
我想创建一个包含几个自定义类数组的Reptile类.没有核心数据我会有这样的事情:
import Foundationimport UIKitclass Reptile_ {    private var _name: String?    private var _dateOfBirth: String?    private var _morph: String?    private var _breed: String?    private var _FeedingPeriodindays: Int?    private var _reminderTime: NSDate?    private var _IDealTemperatureAtDay: String?    private var _IDealTemperatureAtNight: String?    private var _gender: Gender?    private var _image: UIImage?    private var _imageheader: UIImage?    private var _sheddings: [Shedding_]?    private var _Feedings: [Feeding_]?    private var _defecations: [Defecation_]?    private var _weights: [Weight_]?    private var _lengths: [Length_]?    private var _others: [Others_]?}

例如,Weight_类看起来像这样:

import Foundationclass Weight_ {    private var _date: NSDate?    private var _weight: Double?}

我可以使用Core Data来保存单个类,其中包含一些属性如字符串,布尔数据……但我不知道如何保存自定义对象的数组?

我已经读过一些我需要用基础Reptile类创建Relationships(一对多)的地方.所以我做到了这导致了这个:

这是添加自定义对象数组的正确方法吗?如果是这样,我如何继续(只需单击’CreateNSManagedobject Subclass …’?)?如何向阵列添加实例?我该怎么看?

你是正确的,在Core Data中拥有自定义数组包括为这些项创建Core Data对象,并通过关系连接它们,就像在你发布的图中一样.

How do I continue (simply click ‘CreateNSManagedobject Subclass…’?)?

现在您有了一个对象图,下一步很大程度上取决于您是否拥有Xcode 7或Xcode 8.对于前者,您应该单击该创建子类按钮.然后,如果数据模型发生任何变化,则需要再次重新生成子类.

但是,在后者(Xcode 8)中,当您在Core Data对象模型文件中选择实体时,您需要做的就是查看属性检查器中的“Codegen”下拉列表.如果选择“类定义”,Xcode 8应该为您生成类. “类别/扩展”意味着它将创建一个扩展,其中包含Core Data访问所需的所有代码,您需要声明实际的类定义.在任何一种情况下(在Xcode 8中),这些都会在您更改对象模型时自动更新(目前仅在重建后,它们将不可见).

图片来自Core Data WWDC16 session

How do I read it?

假设您尚未在Core Data中设置排序,它将作为NSSet返回,但您可以将其转换为数组:

reptileInstance.lengths.allObjects as! [Length]

How do I add a instance to the array?

你可以做一些简单的事情:

lengthInstance.reptile = reptileInstance

在这种情况下,lengthInstance将自动添加到reptileInstance的lengths集合属性中,或者您可以将新NSSet设置为reptileInstance上的长度.

这是一个非常简化的解释.您应该查看Core Data Programming Guide,但请注意它可能会或可能不会更新即将推出的Xcode 8.

总结

以上是内存溢出为你收集整理的Swift:在Core Data中存储自定义类的数组全部内容,希望文章能够帮你解决Swift:在Core Data中存储自定义类的数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存