如何使用NSObject类使用NSManaged对象类

时间:2014-04-02 05:12:08

标签: ios iphone core-data nsmanagedobject nsobject

我有NSObject类名TrackInfo,其中包含名称,艺术家姓名,拇指图像等曲目信息。

我使用此类作为下载数据并在解析数据后将信息保存到该类。 现在我有另一个标签,我必须显示一些数据。这是跟trackInfo这样的数据。但是,当应用程序处于OFFLINE状态时,我必须生成NSManagedObject。它与trackinfo相同。

我可以使用NSObject课代替NSManagedObject或反Versa吗?

我基本上想要做的是,我必须在一个类中显示Trackinfo(NSObject类)或NSManagedObjectClass的跟踪信息,用于在应用处于离线状态时保存数据。

1 个答案:

答案 0 :(得分:1)

简短回答是肯定的,你可以。怎么样?您可以找到有用的讨论Organising Core Data for iOS

可以在文档中找到长答案。

  

NSManagedObject是一个实现所有基本类的泛型类   Core Data模型对象所需的行为。这是不可能的   使用NSObject的直接子类的实例(或任何其他类的实例)   使用托管对象上下文继承NSManagedObject)。您   可以创建NSManagedObject的自定义子类,但事实并非如此   总是需要的。如果不需要自定义逻辑,则为完整的对象图   可以使用NSManagedObject个实例形成。

     

托管对象与实体描述(实例)相关联   NSEntityDescription)提供有关对象的元数据   (包括对象所代表的实体的名称和   其属性和关系的名称)以及托管对象   跟踪对象图更改的上下文。重要的是   正确配置托管对象以与Core Data一起使用。如果你   直接实例化托管对象,必须调用指定的对象   初始值设定项(initWithEntity:insertIntoManagedObjectContext:)。

关于您的问题,这取决于您需要实现的目标。如果您的目标是在设备和服务器之间执行同步机制,则应设置1)具有TrackInfo实体的模型2)依赖于SQLite等持久性存储的Core Data堆栈。然后,您应修改TrackInfo以考虑对该实体的修改。例如,dirty标记属性(01)或timestamp。当您对TrackInfo进行修改时,您将更新该属性。恢复连接后,您需要查询该属性并与服务器同步。如果您选择timestamp,服务器应该说明要查询的最新时间戳是什么。