ios - NSSet 中的第一个实体具有较短的 ID,并且不保留值更改
问题描述
我有两个实体,House
并且Room
. 多个Room
s通过内部Home
的属性连接。rooms
House
在 Swift 中,如果我得到所有类似的成员rooms
并parentHouse?.rooms?.allObjects as! [Room]
返回一个看起来像这样的数组......
[<Room: 0x1c4286360> (entity: Room; id: 0x1c423c1c0 <x-coredata:///Room/t7A9E5891-F454-496B-A288-8D965C6722842> ; data: {
room = "Bedroom";
index = 0;
house = "0xd000000000580000 <x-coredata://DA7D7CD6-F078-49DF-8684-EDD51D3D0D90/House/p22>";
}), <Room: 0x1c028bbd0> (entity: Room; id: 0xd000000000680002 <x-coredata://DA7D7CD6-F078-49DF-8684-EDD51D3D0D90/Room/p26> ; data: {
room = "Kitchen";
index = 0;
house = "0xd000000000580000 <x-coredata://DA7D7CD6-F078-49DF-8684-EDD51D3D0D90/House/p22>";
}), <Room: 0x1c028c080> (entity: Room; id: 0xd000000000740002 <x-coredata://DA7D7CD6-F078-49DF-8684-EDD51D3D0D90/Room/p29> ; data: {
room = "Bathroom";
index = 1;
house = "0xd000000000580000 <x-coredata://DA7D7CD6-F078-49DF-8684-EDD51D3D0D90/House/p22>";
})]
我面临的问题是,一旦设置了第一个实体的属性,尽管所有其他实体都已正确更改index
,但它不能再次更改。index
我设置index
为瞬态,但问题仍然存在。
经过仔细检查,第一个项目的 id 看起来与其他项目不同,也许这会起作用?
这里有什么问题,如何更改index
第一项的属性?谢谢。
解决方案
最后,我转而使用 an NSOrderedSet
,并且我建议任何尝试在 Core Data 项旁边使用排序索引的人也这样做。
推荐阅读
- json - 将 github json 数据格式化为带有每日日期的 pandas 数据框
- web-services - BIZTALK 上简单代理的最佳方法
- flutter - 使用颤振 firebase_messaging 插件发送通知声音
- ios - iOS 9 应用程序操作系统的 Itune 连接警告-
- pentaho - Pentaho 连接数据库出错
- .net - 有什么方法可以检查所有代理是否都在 Kafka 中启动并运行?
- codeigniter - 如何在非活动 24 小时后注销 codeigniter 应用程序?
- asp.net-mvc - 这是可以在 asp.net / IIS Express 中下载所有文件的正常行为吗?
- ios - Pod 文件断点在 xcode 10.1 中不起作用,而在旧版本的 xcode 中起作用
- r - 提取数据框中具有重复对的不同行的列位置