2015-11-08 18 views
5

की अस्पष्ट उपयोग मैं इस कोड हैसबस्क्रिप्ट xcode 7.1

Ambiguous use of subscript

मैं यह कैसे हल कर सकते हैं?

इस कोड ने कुछ समय के लिए काम किया है लेकिन xcode 7.1 में अपग्रेड के साथ यह टूट गया और काम करना बंद कर दिया।

उत्तर

19

आप संकलक क्या मध्यस्थ वस्तु लाइन

let obj = jsonResult["levels"]![i] as! NSDictionary 

बयान jsonResult["levels"]! संकलक पता नहीं है वस्तु की किस तरह वह के साथ काम करने के बाद में है बताने के लिए की है।

let obj = (jsonResult["levels"] as! NSArray)[i] as! NSDictionary 
बेशक

आप अतिरिक्त यकीन है कि आप वास्तव में सभी कि कास्टिंग कर सकते हैं बनाने के लिए और है कि json अंदर वस्तुओं वास्तव में उम्मीद प्रकार के होते हैं चाहिए: आप यह है कि एक NSArray या कुछ और यह बताने के लिए है।


यहां तक ​​कि एक छोटा सा कम केवल एक सीधे NSDictionary की एक सरणी कास्ट कर डाली का उपयोग कर:

let obj = (jsonResult["levels"] as! [NSDictionary])[i] 

तर्क एक ही रहता है: आप किस प्रकार jsonResult["levels"] का संकलक बताओ। यह NSDictionary एस युक्त एक सरणी माना जाता है।

0

नए स्विफ्ट अपडेट में। आपको के बजाय objectForKey("yourKey") विधि के साथ अपना मान प्राप्त करना चाहिए। आपके मामले में,

let obj = jsonResult.objectForKey("levels")![i] as! NSDictionary 
संबंधित मुद्दे