在我的应用程序中,我使用的是 HomeKit。您可以添加/删除 HMHome 和 HMRoom 对象,但我还想向它们添加一些元数据。例如,在我的应用程序中,我希望能够向 HMRoom 添加一个图标并向其添加一个项目数组。
我的解决方案是我将它与 CoreData 结合使用并存储有关 HMRoom 的额外信息,但是除了它们的名称之外,没有办法识别 HMHome 和 HMRoom 对象。如果我的应用程序是世界上唯一一个编辑 HomeKit 对象的应用程序,这将不是问题,但当然可能还有其他应用程序,也可以调整 HMHome 和 HMRoom 对象(删除它们,重命名它们)。
因此,当用户执行以下操作之一时,我真的会遇到问题:
- 开始我的申请
- 添加一个 HMHome 和 HM Room 对象
- 通过我的应用程序向 HMRoom 对象添加一些元数据,该应用程序存储在我的 CoreData 数据库中
- 退出我的申请
- 启动另一个应用程序并重命名他们刚刚创建的 HMRoom
- 再次启动我的应用程序
因为 HMHome 和 HMRoom 对象没有已知标识符,所以我再也找不到存储在 CoreData 中的元数据,而且元数据实际上已经丢失,因为我无法再将名称与创建的 HMRoom 与我的 CoreData 数据库中的数据匹配。
所以,我的问题是:除了名字之外,有没有办法“识别”HMRoom 和 HMHome 对象?