API کلید مقدار، APIهای مدیریت دادههای سفارشی جدیدی را برای اشیاء دستگاه، اتاق و اتوماسیون ارائه میدهد. چرخه حیات دادههای سفارشی کاملاً به چرخه حیات شیء مرتبط با آن محدود میشود. برای مثال، دادههای سفارشی (مانند "اتاق لوسی") مرتبط با یک شیء اتاق به طور خودکار با شیء اتاق حذف، جابجا یا (بین ساختارها) منتقل میشوند.
تغییر رابط برنامهنویسی کاربردی سوئیفت (Swift API) بر روی کنترلر CustomAppData متمرکز شده است و افزونههایی را برای اشیاء متعلق به دادههای برنامه سفارشی ارائه میدهد و شامل توابع استاندارد ایجاد، خواندن، بهروزرسانی و حذف (CRUD) میشود.
مثال دستگاه
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)
مثال اتاق
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")
مثال اتوماسیون
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)
محدودیتها
- کلید باید رشتهای از کاراکترهای معتبر UTF-8 با حداکثر طول ۱۲۸ باشد. کلید میتواند یک رشته خالی باشد.
- مقدار باید رشتهای از کاراکترهای معتبر UTF-8 با حداکثر طول 1024 باشد. مقدار میتواند یک رشته خالی باشد.
- هر شیء میتواند ۱۰ ردیف جفت کلید-مقدار داشته باشد.