Ios 管理核心数据中的复合主键

Ios 管理核心数据中的复合主键,ios,core-data,unique,Ios,Core Data,Unique,我想在核心数据中创建复合唯一键,因为核心数据中的实际主键是ObjectId。请让我知道,我们如何才能实现同样的目标 更新问题: 我有一个实体作为模板工作。该模板是在服务器上以特定的组合创建的 Like Entity Name : E and there are 4 attributes A, B, C, D. 现在,实体是唯一的,具有以下组合 A1-B1-C1-D1 A1-B2-C1-D1 .... 所以实际上,它是多个属性的排列组合来创建唯一性 现在我想在更新记录时检测这些唯一性。Obje

我想在核心数据中创建复合唯一键,因为核心数据中的实际主键是ObjectId。请让我知道,我们如何才能实现同样的目标

更新问题:

我有一个实体作为模板工作。该模板是在服务器上以特定的组合创建的

Like Entity Name : E
and there are 4 attributes A, B, C, D.
现在,实体是唯一的,具有以下组合

A1-B1-C1-D1
A1-B2-C1-D1
....
所以实际上,它是多个属性的排列组合来创建唯一性


现在我想在更新记录时检测这些唯一性。

ObjectID不是主键。核心数据中没有主键

核心数据不是数据库。在您的设计中将其视为数据库会导致问题。核心数据是一个可以持久化到磁盘的对象图,它可以持久化到的格式之一是数据库。首先将其视为对象图

iOS 9和OS X 10.11中增加了具有唯一ID进行重复检测的功能。回顾2015年的WWDC视频,了解这些变化

使现代化 即使在你更新后,我的答案仍然是准确的。在iOS 9中,他们添加了跨属性定义唯一id的功能,这将有助于解决更新/插入问题。有关此功能的详细信息,请观看2015年WWDC视频

如果你的目标是比iOS 9更早的版本,那么就不要;核心数据中没有为您解决此问题的功能,您需要自己解决。这是所有持久性层都面临的经典“插入与更新”问题的一部分

解决方案是创建一个ID列表,然后获取所有具有这些标识符的对象,然后迭代您正在处理的内容,并使用获取的列表确定是否需要插入


更新到iOS 9并使用新的API更容易。

核心数据中没有主键。您可以检查hey manman,这是真的,只有ObjectId是主键,但是我们有一个具有唯一键的替代解决方案来存储数据库中的记录。我想确认,如果和复合主键一样,是否有在核心数据中创建复合唯一键的选项。e、 在查询格式中:不要用SQL来思考。这是破坏核心数据的最常见方式。也许你应该询问你正试图实现什么,而不是询问如何实施特定的解决方案,特别是因为特定的解决方案与你想要使用的技术背道而驰。这可能是一种重复。