API Giá trị khoá cung cấp các API quản lý dữ liệu tuỳ chỉnh mới cho các đối tượng Thiết bị, Phòng và Tự động hoá. Vòng đời của dữ liệu tuỳ chỉnh được giới hạn nghiêm ngặt trong vòng đời của đối tượng liên kết với dữ liệu đó. Ví dụ: dữ liệu tuỳ chỉnh (như "Phòng của Lucy") liên kết với đối tượng Phòng sẽ tự động bị xoá, di chuyển hoặc chuyển (giữa các cấu trúc) cùng với đối tượng Phòng.
Thay đổi về Swift API tập trung vào trình điều khiển CustomAppData và cung cấp các tiện ích cho những đối tượng mà dữ liệu ứng dụng tuỳ chỉnh thuộc về, đồng thời bao gồm các hàm tạo, đọc, cập nhật và xoá (CRUD) tiêu chuẩn.
Ví dụ về thiết bị
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)
Ví dụ về phòng
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")
Ví dụ về quy trình tự động hoá
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)
Quy định hạn chế
- Khoá phải là một chuỗi ký tự UTF-8 hợp lệ, có độ dài tối đa là 128. Khoá có thể là một chuỗi trống.
- Giá trị phải là một chuỗi ký tự UTF-8 hợp lệ, có độ dài tối đa là 1024. Giá trị có thể là một chuỗi trống.
- Mỗi đối tượng có thể có 10 hàng cặp khoá-giá trị.