L'API Key Value fornisce nuove API di gestione dei dati personalizzate per gli oggetti Dispositivo, Stanza e Automazione. Il ciclo di vita dei dati personalizzati è strettamente limitato al ciclo di vita dell'oggetto a cui sono associati. Ad esempio, i dati personalizzati (come "La stanza di Luca") associati a un oggetto Stanza verranno eliminati, spostati o trasferiti automaticamente (tra le strutture) con l'oggetto Stanza.
La modifica dell'API Swift è incentrata sul controller CustomAppData e fornisce estensioni agli oggetti a cui appartengono i dati dell'applicazione personalizzata e include le funzioni standard di creazione, lettura, aggiornamento ed eliminazione (CRUD).
Esempio di 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)
Esempio di stanza
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")
Esempio di automazione
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)
Restrizioni
- La chiave deve essere una stringa di caratteri UTF-8 validi, con una lunghezza massima di 128 caratteri. La chiave può essere una stringa vuota.
- Il valore deve essere una stringa di caratteri UTF-8 validi, con una lunghezza massima di 1024 caratteri. Il valore può essere una stringa vuota.
- Ogni oggetto può avere 10 righe di coppie chiave-valore.