我不确定哪种方法是最佳做法,但这似乎很常见。我有一堆类,所以这是一个简化的情况:我有一个叫做Recorder
的类,它记录音频。它包含一堆设置,用于记录要记录的音量,要记录的文件等。
我想将其与核心数据一起保存。
1)我应该将其设为托管对象吗?或者,我应该编写一个单独的托管对象,并向getManagedObject
中添加一个类似于initWithManagedObject
和Recorder
的方法,以便来回翻译。
2)或者我应该使Recorder
为托管对象。
请记住,我将Recorder
子类化为AudioRecorder
,因此核心数据模型必须镜像该层次结构。
最佳答案
我会说两种解决方案都是好的。
如果您只想将Recorder对象保存到持久性存储中(例如,以便在应用被终止时可以重新获取它),第一个解决方案很好,但是您将拥有两个类:比如说Recorder和RecorderCoreData。
如果您认为使用这两个类维护代码太复杂了,那么可以将Recorder类转换为托管对象。您唯一应该知道的是,由于AudioRecorder是Recorder的子类,因此AudioRecorder也必须是一个托管对象!
但是,没有完美的答案,只是根据您的需求选择看起来更简单更好的答案。
希望对您有帮助。
关于iphone - 我的类(class)应该转换为核心数据托管对象还是核心数据托管对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18045645/