Key Value API

«میانای برنامه‌سازی کاربردی مقدار کلید» میاناهای برنامه‌سازی کاربردی جدیدی برای مدیریت داده‌های سفارشی برای اشیای «دستگاه»، «اتاق»، و «خودکارسازی» ارائه می‌دهد. دوره حیات داده‌های سفارشی کاملاً محدود به دوره حیات شیء مرتبط با آن است. برای مثال، داده‌های سفارشی (مثل «اتاق لوسی») منسوب به یک شیء «اتاق» به‌طور خودکار حذف، منتقل، یا جابه‌جا (در سراسر ساختارها) می‌شود.

تغییر «میانای برنامه‌سازی کاربردی Swift» بر 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 معتبر با حداکثر طول ۱۰۲۴ باشد. مقدار می‌تواند رشته‌ای خالی باشد.
  • هر شیء می‌تواند ۱۰ ردیف جفت مقدار کلید داشته باشد.