xcode - 将 Swift 中 HTTP 请求返回的 NSData 转换为字符串

标签 xcode string swift nsstring nsdata

我有一些代码发出 HTTP 请求,然后使用数据、响应和错误结果调用函数。然后,该函数尝试调用一个函数 handler,该函数将 Swift String 作为其唯一参数。我尝试将从 HTTP 请求返回的 NSData 对象 (data) 转换为 NSString,然后从那里转换为 Swift String,但当我尝试调用我的函数(handler) 上的 String (res)。

    let res: String = NSString(data: data, encoding: NSUTF8StringEncoding)!
    handler(res)

关于如何修复此错误有什么想法吗?

最佳答案

您的闭包语法是错误的。
尝试将 handler: (String) 更改为 handler: (String) -> ()

func do_request(url: String, data: String?, handler: (String) -> ()) {
    // Your code
    if let res: String = NSString(data: data, encoding: NSUTF8StringEncoding)
    {
         handler(res)
    } 
}

阅读此内容以获取更多信息:https://www.codefellows.org/blog/writing-completion-blocks-with-closures-in-swift

关于xcode - 将 Swift 中 HTTP 请求返回的 NSData 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269790/

相关文章:

c - 如何设置存储结构内部的变量

c# - 在c#中解析一个字符串

Swift Package Manager 无法解析 1.4 以上的 Kitura 版本

ios - 模态转场后看不到源 View Controller

ios - 如何检测键盘高度何时更新?

iphone - 你能看出这段代码有什么问题吗?

ios - 如何以编程方式创建固定空间和灵活的空格键按钮项?

xcode - 如何将Table View中的导航栏设置到顶部?

c - 字符串和指针操作

ios - 观看应用程序在允许/禁止 iPhone 应用程序上的相机权限时被杀死