2016-09-28 16 views
8

मैं इस लाइब्रेरी से निम्नलिखित कोड को कन्वर्ट करने का प्रयास कर रहा हूं (https://github.com/dankogai/swift-json) स्विफ्ट 3 संगत कोड में।स्विफ्ट 2 से 3 माइग्रेशन जेसनऑब्जेक्ट 'कोई भी' उत्पन्न करता है अपेक्षित प्रासंगिक परिणाम प्रकार 'AnyObject?'

हालांकि मैं इस लाइन पर फंस गया हूं।

obj = try JSONSerialization.jsonObject(

त्रुटि मैं JSONObject पैदा करता है 'कोई भी', नहीं उम्मीद प्रासंगिक परिणाम प्रकार 'AnyObject?'

कोड को पूर्ण संदर्भ में 3 में बदलने की कोशिश करने से पहले कोड नीचे है।

public convenience init(data:NSData) { 
     var err:NSError? 
     var obj:AnyObject? 
     do { 
      obj = try NSJSONSerialization.JSONObjectWithData(
       data, options:[]) 
     } catch let error as NSError { 
      err = error 
      obj = nil 
     } 
     self.init(err != nil ? err! : obj!) 
    } 

उत्तर

13

स्विफ्ट 3 में id प्रकार अब Any बजाय AnyObject के रूप में आयात कर रहे हैं। आप या तो obj को Any पर बदल सकते हैं या इसे AnyObject पर डाल सकते हैं।

+0

क्या आप मुझे एक उदाहरण दे सकते हैं जो ऐसा दिखाई देगा? मैं स्विफ्ट –

+0

में कास्टिंग के साथ एक सा जंग लगी हूँ तुम बस यह करने के लिए सक्षम होना चाहिए: 'obj = कोशिश NSJSONSerialization.JSONObjectWithData ( डेटा, विकल्प: []) AnyObject' – rhyshort

+0

के रूप में मैं obj बदल: किसी भी? जैसा कि आपने सुझाव दिया था, मुझे लगता है कि मैं अंत में समझता हूं। मुझे फिर self.init पर एक त्रुटि मिली जो कि '?' में परिणाम मानता है: अभिव्यक्ति में मेल नहीं है 'JSON.NSError (उर्फ' एनएसईआरआरआर ') और' कोई भी '। कोई पन इरादा नहीं है ... कोई विचार? –

संबंधित मुद्दे