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ü, kesinlikle ilişkilendirildiği nesnenin yaşam döngüsüyle 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 aşmamalıdır. Anahtar boş bir dize olabilir.
- Değer, geçerli UTF-8 karakterlerinden oluşan bir dize olmalı ve maksimum uzunluğu 1.024 karakter olmalıdır. Değer boş bir dize olabilir.
- Her nesnede 10 satır anahtar/değer çifti olabilir.