Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift的sendSynchronousRequest方法中传递子类变量_Ios_Objective C_Cocoa_Swift - Fatal编程技术网

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,因此我将两者都删除。

谢谢。节省了我很多时间