A API Key Value oferece novas APIs de gerenciamento de dados personalizados para objetos de dispositivo, ambiente e automação. O ciclo de vida dos dados personalizados é estritamente limitado ao ciclo de vida do objeto ao qual eles estão associados. Por exemplo, dados personalizados (como "Quarto da Lucy") associados a um objeto de ambiente serão excluídos, movidos ou transferidos (entre estruturas) automaticamente com o objeto de ambiente.
A mudança na API Swift se concentra no controlador
CustomAppData
e fornece extensões para os objetos aos quais os dados do aplicativo personalizado
pertencem, além de incluir as funções padrão de criação, leitura, atualização e exclusão
(CRUD).
Exemplo de dispositivo
guard let device = home.devices.first(where: { $0.name == deviceName }) else { return }
var response = try await device.customAppData[key]
print("Before: \(response)")
try await device.customAppData.update(key: key, value: value)
response = try await device.customAppData[key]
print("After: \(response)")
try await device.customAppData.delete(key)
Exemplo de Room
guard let room = home.rooms.first(where: { $0.name == roomName }) else { return }
try await room.customAppData.update(key: "nickname", value: "Lucy's Room")
let response = try await room.customAppData["nickname"]
try await room.customAppData.delete("nickname")
Exemplo de automação
guard let automation = home.automations.first(where: { $0.name == automationName }) else { return }
var response = try await automation.customAppData[key]
print("Before: \(response)")
try await automation.customAppData.update(key: key, value: value)
response = try await automation.customAppData[key]
print("After: \(response)")
try await automation.customAppData.delete(key)
Restrições
- A chave precisa ser uma string de caracteres UTF-8 válidos, com no máximo 128 caracteres. A chave pode ser uma string vazia.
- O valor precisa ser uma string de caracteres UTF-8 válidos, com um comprimento máximo de 1.024. O valor pode ser uma string vazia.
- Cada objeto pode ter 10 linhas de pares de chave-valor.