CCC 类型不符合协议 'NSObjectProtocol'
Type CCC doesnt conform to protocol 'NSObjectProtocol'
我不明白为什么我的代码不起作用。这是:
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":"foo@example.com",
.....
]
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()
}
}
错误:
Type Test does not conform to protocol 'NSObjectProtocol'.
有什么想法吗?
如果顺着继承链往下看,NSURLSessionDataDelegate
继承NSURLSessionTaskDelegate
,NSURLSessionDelegate
继承NSURLSessionDelegate
,NSObjectProtocol
继承NSObjectProtocol
。该协议有各种必需的方法,例如 isEqual(_:)
和 respondsToSelector(_:)
,您 class 没有实现这些方法。
通常,您在这里要做的是让您的 class 继承 NSObject
,它符合 NSObjectProtocol
:
class Test: <strong>NSObject</strong>, NSURLSessionDataDelegate {
...
}
我试图让我的 class 符合协议 FBSDKSharingDelegate
并得到同样的错误。当我试图让我的 subclass 和 superclass UIView
符合协议时,错误消失了。
当我将 NSObject
错误输入为 NSOBject
时出现此错误,因为如果您输入错误,那么它在技术上不符合 NSObject
。希望对某人有所帮助。
我不明白为什么我的代码不起作用。这是:
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":"foo@example.com",
.....
]
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()
}
}
错误:
Type Test does not conform to protocol 'NSObjectProtocol'.
有什么想法吗?
如果顺着继承链往下看,NSURLSessionDataDelegate
继承NSURLSessionTaskDelegate
,NSURLSessionDelegate
继承NSURLSessionDelegate
,NSObjectProtocol
继承NSObjectProtocol
。该协议有各种必需的方法,例如 isEqual(_:)
和 respondsToSelector(_:)
,您 class 没有实现这些方法。
通常,您在这里要做的是让您的 class 继承 NSObject
,它符合 NSObjectProtocol
:
class Test: <strong>NSObject</strong>, NSURLSessionDataDelegate {
...
}
我试图让我的 class 符合协议 FBSDKSharingDelegate
并得到同样的错误。当我试图让我的 subclass 和 superclass UIView
符合协议时,错误消失了。
当我将 NSObject
错误输入为 NSOBject
时出现此错误,因为如果您输入错误,那么它在技术上不符合 NSObject
。希望对某人有所帮助。