首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HomeKit HMHome和HMRoom标识符/额外元数据

HomeKit HMHome和HMRoom标识符/额外元数据
EN

Stack Overflow用户
提问于 2015-02-14 06:57:01
回答 2查看 921关注 0票数 5

在我的应用程序中,我使用HomeKit。您可以添加/删除HMHome和HMRoom对象,但我也想向它们添加一些元数据。例如,在我的应用程序中,我希望能够向HMRoom添加一个图标,并向它添加一个条目数组。

我的解决方案是将它与CoreData结合使用,并存储关于HMRoom的额外信息,但是除了名称之外,没有其他方法可以识别HMHome和HMRoom对象。如果我的应用程序是世界上唯一编辑对象的应用程序,那么这不会是一个问题,但是当然还有其他应用程序,也可以调整HMHome和HMRoom对象(删除它们,重命名它们)。

因此,当用户做以下事情之一时,我会遇到一个问题:

  1. 启动我的申请
  2. 添加HMHome和HMRoom对象
  3. 通过我的应用程序向HMRoom对象添加一些元数据,它存储在我的CoreData数据库中。
  4. 放弃我的申请
  5. 启动另一个应用程序并重命名他们刚刚创建的HMRoom
  6. 重新启动我的应用程序

因为HMHome和HMRoom对象没有已知的标识符,所以我再也找不到存储在CoreData中的元数据了,元数据实际上也丢失了,因为我不能再将创建的HMRoom名称与HMRoom数据库中的数据相匹配。

因此,我的问题是:是否有一种方法可以“识别”HMRoom和HMHome对象,而不是它们的名称?

EN

回答 2

Stack Overflow用户

发布于 2015-12-10 15:58:05

在iOS9中,您可以使用uniqueIdentifier始终标识同一个对象。无论房间被重命名,这个UUID都保持不变。

票数 3
EN

Stack Overflow用户

发布于 2015-02-15 20:26:34

根据文档,除了名称之外,HMHomeHMRoom没有其他标识符。但它们都具有accessories属性,HMAccessory具有标识符属性,该属性是持久的(至少在用户删除附件并再次添加附件之前,我希望这不是常见的事情)。

这样,您就可以保存分配给给定的家庭或房间的附件以及其他元数据。如果家庭或房间的名称发生变化,在大多数情况下,您仍然应该能够检测到原来的名称是什么,看看存储的附件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28513303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档