我正在使用Swift开发应用程序,并最近开始使用Core Data。
我必须定义我的实体中哪个属性将是主键。例如:
我有一个实体,它具有以下类的属性:
- id
- name
- age
我需要“id”属性是我的主键。
在Objective-C中可能是相同的,只需要知道如何定义它。
NSManagedObject
都有其自己独特的内置密钥,可在其objectID
属性中使用。NSManagedObject.objectID
获取ID。NSManagedObjectContext.objectWithId(...)
。为什么需要将id作为主键?在非SQL环境下,也没有主键(即使在Core Data后面是SQL,你也不使用SQL和主键)。将属性id重命名为userId或entityId。当您想要使用id获取实体时,请使用NSPredicate:
[NSPredicate predicateWithFormat:@"(entityId == %d)", entityId]