我有NSObject
类名TrackInfo,其中包含名称,艺术家姓名,拇指图像等曲目信息。
我使用此类作为下载数据并在解析数据后将信息保存到该类。
现在我有另一个标签,我必须显示一些数据。这是跟trackInfo这样的数据。但是,当应用程序处于OFFLINE状态时,我必须生成NSManagedObject
。它与trackinfo
相同。
我可以使用NSObject
课代替NSManagedObject
或反Versa吗?
我基本上想要做的是,我必须在一个类中显示Trackinfo(NSObject
类)或NSManagedObjectClass
的跟踪信息,用于在应用处于离线状态时保存数据。
答案 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
标记属性(0
或1
)或timestamp
。当您对TrackInfo
进行修改时,您将更新该属性。恢复连接后,您需要查询该属性并与服务器同步。如果您选择timestamp
,服务器应该说明要查询的最新时间戳是什么。