最佳实践:在框架中公开 NSManagedObject

Best practice: exposing NSManagedObject in framework

我正在 iOS 中制作一个 library/framework,它包含即时消息功能,使用 CoreData(加上 MagicalRecord 和 Mogenerator)来存储消息和对话。

我主要有两个 NSManagedObject class:MessageConversation。例如,在 Message 中,我有一些 class 方法来创建实体(例如 [Message createMessage] 和一些实例方法来查询 table (例如 [message getLatestMessages])。

我的问题是,在我的框架 MessageConversation(以及它们所有的 public 方法)中公开 publicly 多少是一个好习惯。 我应该采取不同的方法,比如用其他 classes 包装实体吗? 然而,数据库上下文将始终对框架的用户隐藏。

不用再包装了,已经抽象出来了。只需公开它们,因为它们只是数据对象。

您应该有一个入口点来检索数据和保存数据。暴露给外部应用程序的某种形式的 DataController。