我创建了一个请求扩展,代码如下:
extension Request {
public func responseIDEA(completionHandler: (AnyObject?, String?) -> Void) -> Self {
self.responseJSON() { response in
if response.result.error != nil {
completionHandler (nil, response.result.error!.localizedDescription)
}else {
completionHandler(response.result.value?.valueForKey("Data"), response.result.value?.valueForKey("Message") as? String)
}
}
}
}
但我有一个错误:
类型“self”的值没有成员“responseJSon”
为什么我不能得到回应?
最佳答案
responseJSON
在两个扩展中声明—一个在DataRequest
中声明,另一个在DownloadRequest
中声明。
由于Request
是这两个类的超类,Request
没有responseJSON
方法。
为DataRequest
和DownloadRequest
创建两个扩展名:
extension DataRequest {
public func responseIDEA(completionHandler: (AnyObject?, String?) -> Void) -> Self {
self.responseJSON() { response in
if response.result.error != nil {
completionHandler (nil, response.result.error!.localizedDescription)
}else {
completionHandler(response.result.value?.valueForKey("Data"), response.result.value?.valueForKey("Message") as? String)
}
}
}
}
extension DownloadRequest {
public func responseIDEA(completionHandler: (AnyObject?, String?) -> Void) -> Self {
self.responseJSON() { response in
if response.result.error != nil {
completionHandler (nil, response.result.error!.localizedDescription)
}else {
completionHandler(response.result.value?.valueForKey("Data"), response.result.value?.valueForKey("Message") as? String)
}
}
}
}
或者,如果你只需要其中一个,就写一个。