Ios 在Swift的sendSynchronousRequest方法中传递子类变量
我有以下代码:Ios 在Swift的sendSynchronousRequest方法中传递子类变量,ios,objective-c,cocoa,swift,Ios,Objective C,Cocoa,Swift,我有以下代码: var error : NSError? var response : NSHTTPURLResponse? var urlData : NSData = NSURLConnection.sendSynchronousRequest ( request, returningResponse: &response, error: &error ) as NSData returningResponse以参考文档中提到的N
var error : NSError?
var response : NSHTTPURLResponse?
var urlData : NSData = NSURLConnection.sendSynchronousRequest
(
request,
returningResponse: &response,
error: &error
) as NSData
returningResponse
以参考文档中提到的NSURLResponse
为例
我正在使用NSHTTPURLResponse
,它是nsurresponse
的一个子类。这在Objective-C中工作得很好,但我不知道如何在Swift中编写它,因为编译器在该行上抛出了一个错误
错误是:
无法将表达式的类型“NSData”转换为类型“inout-nshtpurlresponse”
这是什么意思?如何正确处理呢?问题在于,您传递的类型与方法预期的不同。您仍然应该传入
nsurresponse
。您可以在以后强制转换类型:
var urlData = NSURLConnection.sendSynchronousRequest
(
request,
returningResponse: &response,
error: &error
)
if let httpResponse = response as? NSHTTPURLResponse {
// Work with HTTP response
}
另外请注意,可以从方法的返回类型推断urlData的类型。无需指定类型,也无需将结果转换为NSData,因此我将两者都删除。谢谢。节省了我很多时间