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 صفوف من أزواج المفاتيح والقيم.