A API Key Value oferece novas APIs personalizadas de gerenciamento de dados para objetos de dispositivo, sala e automação. O ciclo de vida dos dados personalizados é estritamente limitado ao ciclo de vida do objeto a que está associado. Por exemplo, dados personalizados (como "Quarto da Lucy") associados a um objeto "Room" serão excluídos, movidos ou transferidos automaticamente (entre estruturas) com o objeto "Room".
A mudança na API Swift está centrada no controlador
CustomAppData
e fornece extensões aos objetos a que os dados do aplicativo personalizado
pertencem, incluindo as funções padrão de criar, ler, atualizar e excluir
(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 sala
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 um tamanho máximo de 128. 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.