我有一些代码发出 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/