بدءًا من الإصدار 4.0.0 من حزمة تطوير برامج الأماكن لأجهزة iOS، سيتضمن GMSPlaceField
النوع يستخدم الآن وحدة الماكرو NS_OPTIONS
. تحتوي الإصدارات 3.x من حزمة SDK على GMSPlaceField
.
كـ NS_ENUM
ولا تزال متاحة.
في حالة استخدام الهدف ج: ليس هناك أي آثار. يمكنك المتابعة باستخدام
GMSPlaceField
على النحو السابق.في حال استخدام Swift: ستتوقّف عملية التنفيذ إذا كنت تستخدم 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]