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