I don't understand why my code doesn't work. Here it is:
class Test: NSURLSessionDataDelegate { func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?) { if(error == nil) { print("Hallo") } else { print(error?.userInfo) } } func createRequest() { let dictionary = [ "mailAddress":"[email protected]", ..... ] let nsData: NSData? do { nsData = try NSJSONSerialization.dataWithJSONObject(dictionary, options: NSJSONWritingOptions(rawValue:0)) } catch _ { nsData = nil } let defaultConfigObject = NSURLSessionConfiguration.defaultSessionConfiguration() let defaultSession = NSURLSession(configuration: defaultConfigObject, delegate: self, delegateQueue: NSOperationQueue.mainQueue()) let url = NSURL(string: "http:...")! let urlRequest = NSMutableURLRequest(URL: url) urlRequest.HTTPMethod = "POST" urlRequest.HTTPBody = nsData urlRequest.addValue("application/json", forHTTPHeaderField: "Content-Type") let dataTask = defaultSession.dataTaskWithRequest(urlRequest) dataTask.resume() } }
And the error:
Type Test does not conform to protocol 'NSObjectProtocol'.
Any ideas?
If you follow up the inheritance chain, NSURLSessionDataDelegate
inherits NSURLSessionTaskDelegate
, which inherits NSURLSessionDelegate
, which inherits, NSObjectProtocol
. This protocol has various required methods like isEqual(_:)
and respondsToSelector(_:)
which you class does not implement.
Generally what you would do here is make your class inherit NSObject
which conforms to NSObjectProtocol
:
class Test: NSObject, NSURLSessionDataDelegate { ... }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With