我不确定哪种方法是最佳做法,但这似乎很常见。我有一堆类,所以这是一个简化的情况:我有一个叫做Recorder的类,它记录音频。它包含一堆设置,用于记录要记录的音量,要记录的文件等。

我想将其与核心数据一起保存。

1)我应该将其设为托管对象吗?或者,我应该编写一个单独的托管对象,并向getManagedObject中添加一个类似于initWithManagedObjectRecorder的方法,以便来回翻译。

2)或者我应该使Recorder为托管对象。

请记住,我将Recorder子类化为AudioRecorder,因此核心数据模型必须镜像该层次结构。

最佳答案

我会说两种解决方案都是好的。

如果您只想将Recorder对象保存到持久性存储中(例如,以便在应用被终止时可以重新获取它),第一个解决方案很好,但是您将拥有两个类:比如说Recorder和RecorderCoreData。

如果您认为使用这两个类维护代码太复杂了,那么可以将Recorder类转换为托管对象。您唯一应该知道的是,由于AudioRecorder是Recorder的子类,因此AudioRecorder也必须是一个托管对象!

但是,没有完美的答案,只是根据您的需求选择看起来更简单更好的答案。

希望对您有帮助。

关于iphone - 我的类(class)应该转换为核心数据托管对象还是核心数据托管对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18045645/

10-10 20:29