توفّر واجهة برمجة التطبيقات Key Value واجهات برمجة تطبيقات جديدة لإدارة البيانات المخصّصة لكائنات الجهاز والغرفة والأتمتة. تقتصر دورة حياة البيانات المخصّصة بشكل صارم على دورة حياة الكائن المرتبطة به. على سبيل المثال، سيتم تلقائيًا حذف البيانات المخصّصة (مثل "غرفة لوسي") المرتبطة بكائن الغرفة أو نقلها أو تحويلها (بين الهياكل) مع كائن الغرفة.
يركّز تغيير واجهة برمجة تطبيقات 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 صفوف من أزواج المفتاح والقيمة.