iOS এর জন্য Places SDK-এর সংস্করণ 4.0.0 থেকে শুরু করে, GMSPlaceField
টাইপ এখন NS_OPTIONS
ম্যাক্রো ব্যবহার করে। SDK-এর 3.x সংস্করণে NS_ENUM
হিসাবে GMSPlaceField
আছে এবং এখনও সমর্থিত।
আপনি যদি উদ্দেশ্য-সি ব্যবহার করেন: কোন প্রভাব নেই। আপনি আগের মত
GMSPlaceField
ব্যবহার চালিয়ে যেতে পারেন।আপনি যদি সুইফট ব্যবহার করেন: আপনি যদি কনস্ট্রাক্টর হিসেবে
GMSPlaceField(rawValue:)
সিনট্যাক্স ব্যবহার করেন তাহলে আপনার বাস্তবায়ন ভেঙে যাবে, SDK-এর কোন পুরানো সংস্করণগুলি ঐচ্ছিকGMSPlaceField?
. সংস্করণ 4.0.0 এবং উচ্চতর একটি অ-ঐচ্ছিকGMSPlaceField
মান প্রদান করে; ঐচ্ছিকভাবে সম্পাদিত যেকোন ক্রিয়াকলাপ, যেমন শর্তসাপেক্ষ চেক বা জোর করে খুলে ফেলা, ব্যর্থ হবে। উপরন্তু, আপনি এখনGMSPlaceField
s একত্রিত করতে অ্যারে সিনট্যাক্স ব্যবহার করতে পারেন
আপনার কোড স্থানান্তর করা হচ্ছে
সুইফটে কিছু শর্তযুক্ত আনর্যাপিং বা জোর করে আনর্যাপিং সিনট্যাক্স ভেঙে যাবে। নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে এই সমস্যাগুলি সমাধান করতে হয়, এবং GMSPlaceField
ঘোষণা করতে অ্যারে সিনট্যাক্স ব্যবহার করে প্রদর্শন করে:
শর্তাধীন unwrapping
নিম্নলিখিত উদাহরণে বিবৃতিটি ব্যবহার করে দেখায় if
একটি GMSPlaceField
অ্যারে তৈরি করতে হয় যার জন্য শর্তসাপেক্ষ খুলতে হয়। এর ফলে একটি কম্পাইলার ত্রুটি দেখা দেবে ("কন্ডিশনাল বাইন্ডিংয়ের জন্য ইনিশিয়ালাইজারের অবশ্যই ঐচ্ছিক প্রকার থাকতে হবে, 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]