Key Value API, Cihaz, Oda ve Otomasyon nesneleri için yeni özel veri yönetimi API'leri sağlar. Özel verilerin yaşam döngüsü, ilişkilendirildiği nesnenin yaşam döngüsüyle kesinlikle sınırlıdır. Örneğin, bir Oda nesnesiyle ilişkili özel veriler (ör. "Ayşe'nin odası") Oda nesnesiyle birlikte otomatik olarak silinir, taşınır veya aktarılır (yapılar arasında).
Swift API değişikliği, CustomAppData denetleyicisi üzerinde yoğunlaşır ve özel uygulama verilerinin ait olduğu nesnelere uzantılar sağlar. Ayrıca standart oluşturma, okuma, güncelleme ve silme (CRUD) işlevlerini içerir.
Cihaz örneği
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)
Oda örneği
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")
Otomasyon örneği
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)
Kısıtlamalar
- Anahtar, geçerli UTF-8 karakterlerinden oluşan bir dize olmalı ve maksimum uzunluğu 128 karakteri geçmemelidir. Anahtar boş bir dize olabilir.
- Değer, geçerli UTF-8 karakterlerinden oluşan bir dize olmalı ve maksimum 1.024 karakter uzunluğunda olmalıdır. Değer boş bir dize olabilir.
- Her nesnede 10 satır anahtar/değer çifti olabilir.