将新的Core Data实体(EntityB)插入另一个实体(EntityA)的nsorderedset关系属性时,我得到了奇怪的行为; index
将被忽略,并且对象始终插入到有序集的末尾。
要插入的对象是现有对象的副本,使用的是使用自定义副本初始化程序创建的另一个父实体:
// EntityA
@NSManaged var entityBs: nsorderedset // to-many relationship
// EntityB
@NSManaged var entityA: EntityA?
// Inserting EntityB copy into EntityA
let entityBCopy = EntityB(entityB: entityBOriginal,newParent: entityA)
entityA.insertIntoEntityBs(entityBCopy,at: index)
entityBs
插入之前:
entity0
entity1
entity2
entity3
entity4
在索引2插入entityBs
后, newEntity2
entity0
entity1
entity2
entity3
entity4
newEntity2 < inserted at the end of ordered set,not at index 2
我已经确认index
在entityBs
内容的范围内。
EntityA使用Core Data Generated accessors,但我也尝试通过键值编码方法手动插入对象-发生相同的问题。这使我想知道这是否是nsorderedset上的问题,而不是核心数据问题。
我不知道为什么会这样,所以欢迎提供任何信息!