how - swift شرح




كسكودي 7-خطأ الزهر غريب يشير إلى شكويليمنت (3)

لقد قمت بتحديث التعليمات البرمجية ل هكود 7 و سويفت 2.0، والآن بعض إخفاقات بلدي تفشل وأرى قائمة من 40 تحذيرات في بناء اختبار التي لا علاقة لها تماما مع التعليمات البرمجية التي تشير إليها. رسالة التحذير هي:

"Cast From 'XCUIElement' to unrelated type 'String' always fails" 

وهذا مثال على صف ينتج التحذير:

if let protocolStr = JSON["version"] as? String{

أنا لا تستخدم شك واجهة المستخدم اختبارات حتى الآن ... لذلك لا أستطيع أن أفهم لماذا هذا الرمز يشير إلى تلك الفئة. اي فكرة؟

تحديث: 9 نوفمبر مع شكود 7.1 القضية لا تزال هناك.


أعتقد أنك أصلحت مشكلتك، ولكن في حالة أي شخص آخر يبحث في هذا:

المشكلة هي أن جسون هو من نوع أنيوبجيكت أنا التخمين، في أنها لا تعرف أنه يمكنك فهرسة كما القاموس. إذا كنت يلقي عليه ك [سلسلة: أنيوبجيكت] قبل جهة فإنه لن تعطيك خطأ. (كما لاحظت)

تحرير: أما لماذا انها تعطيك هذا الخطأ على وجه التحديد، أنا لست متأكدا. ربما علة.


مع كسكودي 7.1.1 غير ثابتة ولكن هذا الحل البديل ساعدني:

if let protocolStr = JSON["version"] as AnyObject as! String {

كسكودي 7.2، سويفت 2.2

حاول مثل هذا

if let protocolStr = JSON.valueForKey("version") as? String{
     //your code
}




xcode7