بدءًا من الإصدار 4.0.0 من حزمة تطوير برامج "الأماكن" لأجهزة iOS، يستخدم النوع GMSPlaceField
الآن وحدة الماكرو NS_OPTIONS
. تتضمّن الإصدارات 3.x من حزمة SDK GMSPlaceField
بصفتها NS_ENUM
ولا تزال متوافقة.
إذا كنت تستخدم Objective-C: ما مِن تأثيرات. يمكنك مواصلة استخدام
GMSPlaceField
كالمعتاد.في حال استخدام Swift: سيتعطّل التنفيذ في حال استخدام
GMSPlaceField(rawValue:)
كصانع مثيل، وهو ما كانت تعرِضه الإصدارات القديمة من حزمة SDK كGMSPlaceField?
اختياري. يعرض الإصدار 4.0.0 والإصدارات الأحدث قيمةGMSPlaceField
غير اختيارية، وسيتم تعذُّر تنفيذ أي عمليات تتم على القيمة الاختيارية، مثل عمليات التحقّق الشَرطية أو إزالة التفاف القِيَم بالقوة. بالإضافة إلى ذلك، يمكنك الآن استخدام بنية الصفيف لدمجGMSPlaceField
.
نقل الرمز
ستتعطّل بعض بنى إزالة التفاف الشروطية أو إزالة التفاف الإكراه في Swift.
توضِّح الأمثلة التالية كيفية حلّ هذه المشاكل، كما توضِّح استخدام
بنية الصفيف لتعريف GMSPlaceField
:
إزالة التغليف المشروطة
توضِّح العبارة في المثال التالي استخدام if
لإنشاء صفيف
GMSPlaceField
يتطلّب إزالة الالتفاف الشَرطي. سيؤدي ذلك إلى
حدوث خطأ في المُجمِّع ("يجب أن يكون للمُنشئ للربط الشَرطي نوعًا optional
، وليس 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]