Key Value API

কী ভ্যালু API, ডিভাইস, রুম ও অটোমেশন অবজেক্টের জন্য নতুন কাস্টম ডেটা ম্যানেজমেন্ট API প্রদান করে। কাস্টম ডেটার লাইফসাইকেল, যে অবজেক্টের সাথে এটি যুক্ত তার লাইফসাইকেলের মধ্যে কঠোরভাবে সীমাবদ্ধ থাকে। যেমন, রুম অবজেক্টের সাথে যুক্ত কাস্টম ডেটা (যেমন "লুসির রুম") রুম অবজেক্টের সাথে অটোমেটিক মুছে যাবে, সরানো হবে বা ট্রান্সফার করা হবে (স্ট্রাকচার জুড়ে)।

Swift 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 অক্ষরের স্ট্রিং হতে হবে, যার সর্বাধিক দৈর্ঘ্য ১০২৪। ভ্যালু খালি স্ট্রিং হতে পারে।
  • প্রতিটি অবজেক্টে ১০টি কী-ভ্যালু পেয়ারের সারি থাকতে পারে।