Key Value API ডিভাইস, রুম এবং অটোমেশন অবজেক্টের জন্য নতুন কাস্টম ডেটা ম্যানেজমেন্ট API প্রদান করে। কাস্টম ডেটার জীবনচক্রটি যে অবজেক্টের সাথে যুক্ত তার জীবনচক্রের সাথে কঠোরভাবে সীমাবদ্ধ। উদাহরণস্বরূপ, একটি রুম অবজেক্টের সাথে যুক্ত কাস্টম ডেটা (যেমন "লুসির রুম") স্বয়ংক্রিয়ভাবে রুম অবজেক্টের সাথে মুছে ফেলা, সরানো বা স্থানান্তরিত হবে (কাঠামো জুড়ে)।
সুইফট এপিআই পরিবর্তনটি 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 অক্ষরের একটি স্ট্রিং হতে হবে, যার সর্বোচ্চ দৈর্ঘ্য ১২৮ হতে পারে। কীটি একটি খালি স্ট্রিং হতে পারে।
- মানটি অবশ্যই বৈধ UTF-8 অক্ষরের একটি স্ট্রিং হতে হবে, যার সর্বোচ্চ দৈর্ঘ্য ১০২৪ হতে পারে। মানটি একটি খালি স্ট্রিং হতে পারে।
- প্রতিটি বস্তুতে ১০টি সারি কী মান জোড়া থাকতে পারে।