2015-10-02 8 views
33

अपना स्वयं का सत्र ऑब्जेक्ट NSURLSession() बनाने का प्रयास करते समय और एक यूआरएल का अनुरोध करने के लिए मुझे एक अपरिचित चयनकर्ता अपवाद मिलता है लेकिन जब मैं साझा सत्र NSURLSession.sharedSession() का उपयोग करता हूं तो सब कुछ ठीक काम करता है। कैसे?NSURLSession dataTaskForRequest: समापन: अज्ञात चयनकर्ता उदाहरण के लिए भेजा गया

var url = NSURL(string: "http:/www.google.com") 
if url != nil { 
    //throws unrecognized selector when dataTaskWithURL is called 
    let session=NSURLSession() 
    session.dataTaskWithURL(url!) 

    //works 
    let sharedSession=NSURLSession.sharedSession() 
    sharedSession.dataTaskWithURL(url!) 
} 
+1

विन्यास के साथ आरंभ करने का प्रयास करें। NSURLSession (विन्यास: NSURLSessionConfiguration.defaultSessionConfiguration()) – MadNik

उत्तर

76

आप एक विन्यास के साथ init URLSession करने के लिए है:

URLSession(configuration: .default) 

या का उपयोग साझा सत्र

URLSession.shared 
+3

धन्यवाद यह काम करता है, मैं मान लिया है कि यह डिफ़ॉल्ट रूप से defaultSessionConfiguration का इस्तेमाल किया है, तो मैं निर्माता – Alex

+1

के लिए कुछ भी उत्तीर्ण नहीं होते हैं स्विफ्ट 3 वाक्य रचना के लिए अब है: URLSession (विन्यास: URLSessionConfiguration ।चूक) –

1
एक तरफ साझा सत्र NSURLSession इन दोनों तरीकों में से एक के साथ प्रारंभ किया जाना चाहिए से

init(configuration configuration: NSURLSessionConfiguration) 


init(configuration configuration: NSURLSessionConfiguration, 
       delegate delegate: NSURLSessionDelegate?, 
      delegateQueue queue: NSOperationQueue?) 
4

स्विफ्ट 3.0 में और ऊपर:

 URLSession.shared.dataTask(with: url, completionHandler: 
     { 
      (data, response, error) in 

      //Your code 
     }).resume() 
-1

प्रारंभ करते हैं, जबकि घोषणा: -

var session = URLSession(configuration: .default) 
संबंधित मुद्दे

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