Key Value API

توفّر 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 صالحة، وبحد أقصى 128 حرفًا. يمكن أن يكون المفتاح سلسلة فارغة.
  • يجب أن تكون القيمة عبارة عن سلسلة من أحرف UTF-8 صالحة، وبطول أقصى يبلغ 1024 حرفًا. يمكن أن تكون القيمة سلسلة فارغة.
  • يمكن أن يحتوي كل عنصر على 10 صفوف من أزواج المفاتيح والقيم.