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