NS_OPTIONS হিসাবে GMSPlaceField-এ স্থানান্তরিত হচ্ছে৷

iOS এর জন্য Places SDK এর ভার্সন 4.0.0 থেকে শুরু করে, GMSPlaceField টাইপ এখন NS_OPTIONS ম্যাক্রো ব্যবহার করে। SDK এর ভার্সন 3.x-এ GMSPlaceField NS_ENUM হিসেবে ব্যবহার করা হয়েছে এবং এখনও সমর্থিত।

  • যদি আপনি Objective-C ব্যবহার করেন: তাহলে কোন প্রভাব নেই। আপনি আগের মতো GMSPlaceField ব্যবহার চালিয়ে যেতে পারেন।

  • যদি আপনি Swift ব্যবহার করেন: তাহলে আপনার বাস্তবায়ন ভেঙে যাবে যদি আপনি GMSPlaceField(rawValue:) সিনট্যাক্সটি কনস্ট্রাক্টর হিসেবে ব্যবহার করেন, তাহলে SDK-এর কোন পুরোনো সংস্করণগুলি ঐচ্ছিক GMSPlaceField? . সংস্করণ 4.0.0 এবং উচ্চতর সংস্করণগুলি একটি অ-ঐচ্ছিক GMSPlaceField মান প্রদান করে; ঐচ্ছিকভাবে সম্পাদিত যেকোনো ক্রিয়াকলাপ, যেমন শর্তসাপেক্ষ চেক বা জোর করে আনর্যাপ, ব্যর্থ হবে। এছাড়াও, আপনি এখন GMSPlaceField গুলি একত্রিত করতে অ্যারে সিনট্যাক্স ব্যবহার করতে পারেন

আপনার কোড স্থানান্তর করা হচ্ছে

Swift-এ কিছু শর্তসাপেক্ষে আনর্যাপিং বা ফোর্স আনর্যাপিং সিনট্যাক্স ভেঙে যাবে। নিম্নলিখিত উদাহরণগুলি দেখায় যে কীভাবে এই সমস্যাগুলি সমাধান করতে হয়, এবং GMSPlaceField ঘোষণা করার জন্য অ্যারে সিনট্যাক্স ব্যবহার করেও দেখান:

শর্তসাপেক্ষে খোলা

নিচের উদাহরণের বিবৃতিটি দেখায় যে GMSPlaceField অ্যারে তৈরি করতে if ব্যবহার করা হয় যার জন্য শর্তসাপেক্ষে আনর্যাপিং প্রয়োজন। এর ফলে একটি কম্পাইলার ত্রুটি দেখা দেবে ("কন্ডিশনাল বাইন্ডিংয়ের জন্য ইনিশিয়ালাইজারের Optional type থাকা আবশ্যক, GMSPlaceField নয়"।)

// Before.
if let field = GMSPlaceField(
    rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
) { // Do something }

এই সমস্যাটি সমাধানের জন্য, এখানে দেখানো হিসাবে if স্টেটমেন্টটি সরিয়ে ফেলুন:

// After.
let field =  GMSPlaceField(
    rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
)
// Do something

আপনি এখানে দেখানো অ্যারে সিনট্যাক্সও ব্যবহার করতে পারেন:

let field = [GMSPlaceField.name, GMSPlaceField.photos]
// or
let field: GMSPlaceField = [.name, .photos]

জোর করে খুলে ফেলুন

নিচের উদাহরণের বিবৃতিটি GMSPlaceField একটি অ-ঐচ্ছিক প্রকার হিসেবে ব্যবহার করার ইঙ্গিত দেয়। এর ফলে একটি কম্পাইলার ত্রুটি দেখা দেবে ("অ-ঐচ্ছিক প্রকার GMSPlaceField এর মান জোর করে খুলে ফেলা যাবে না।"):

// Before.
let field = GMSPlaceField(
    rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
)!

এই সমস্যাটি সমাধানের জন্য, এখানে দেখানো হিসাবে, ঐচ্ছিক প্রকার হিসেবে GMSPlaceField ব্যবহার করুন:

// After.
let field =  GMSPlaceField(
    rawValue: GMSPlaceField.name.rawValue | GMSPlaceField.photos.rawValue
)

আপনি এখানে দেখানো অ্যারে সিনট্যাক্সও ব্যবহার করতে পারেন:

let field = [GMSPlaceField.name, GMSPlaceField.photos]
// or
let field: GMSPlaceField = [.name, .photos]