NSURLRequest 出错,无法识别的选择器发送到实例

Posted

技术标签:

【中文标题】NSURLRequest 出错,无法识别的选择器发送到实例【英文标题】:Error in NSURLRequest, unrecognized selector sent to instance 【发布时间】:2016-05-16 10:48:32 【问题描述】:

我用NSURLRequest做了一个简单的GET请求, 这是代码:

let todoEndpoint: String = "http://jsonplaceholder.typicode.com/todos/1"
    let url = NSURL(string: todoEndpoint)
    let urlRequest = NSURLRequest(URL: url!)
    let session = NSURLSession()

    let task = session.dataTaskWithRequest(urlRequest) 
        (data, response, error) in

        guard error == nil else 
            print("Error calling GET on /todos/1")
            print(error)
            return
        

        guard let responseData = data else 
            print("Error: did not receive data")
            return
        

    do 

        guard let todo = try NSJSONSerialization.JSONObjectWithData(responseData, options: []) as? [String: AnyObject] else 
            print("Error. ")
            return
        

    print("The todo is " + todo.description)

        guard let todoTitle = todo["title"] as? String else 
            return
        

    print("The title is " + todoTitle)

     catch 
        return
    
    
    task.resume()

Xcode 说:

[NSURLSession dataTaskForRequest:completion:]:无法识别的选择器发送到实例 0x7f93d1714270

【问题讨论】:

使用 let session = NSURLSession.sharedSession() 好收获@AnkitaShah 【参考方案1】:

您应该使用共享会话而不是创建新会话

let session = NSURLSession.sharedSession()

或者您也可以创建自己的会话,但您必须在构造函数中提供会话配置

let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)

【讨论】:

以上是关于NSURLRequest 出错,无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章

执行 segue 时出错:-[UITextField 长度]:无法识别的选择器发送到实例 [关闭]

“无法识别的选择器”-将 AppDelegate 的 NSManagedObjectContext 导入其他类 (OSX) 时出错

Permissions-Policy 标头出错:无法识别的功能:'interest-cohort'

“无法识别的类型'员工'。忽略。C:/ .....”从.xml读取输入并将输出写入.xls文件+ perl时出错

无法识别的属性 requestValidationMode 请注意属性区分大小写 这是怎么回事

无法识别的名称:使用 bigquery 标准 sql 进行嵌套查询时出错