【发布时间】:2020-02-26 16:07:14
【问题描述】:
我对 Swift 很陌生,但我有一个函数可以返回数字的键值对结果
func dataPostRequest(_ url:String,_ paramString:String)
{
let url:NSURL = NSURL(string: url)!
let session = URLSession.shared
let request = NSMutableURLRequest(url: url as URL)
request.httpMethod = "POST"
request.httpBody = paramString.data(using: String.Encoding.utf8)
let task = session.dataTask(with: request as URLRequest) {
(
data, response, error) in
guard let _:NSData = data as NSData?, let _:URLResponse = response, error == nil else {
print("error")
return
}
if let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
{
print(dataString)
}
}
task.resume()
}
我可以这样调用函数:
dataPostRequest("https://myserver.com/","user_email=emailtest.com")
这可以正常工作,但我现在想使用我提取的数据并将其显示在表视图中。我的 tableView 设置正确,但我想知道如何使用我的函数并将其转换为我可以使用的键值对数组或字典。我尝试创建一个空字典并将我的函数调用设置为它,但出现错误:
var emptyDictionary = [Int: Int]()
emptyDictionary = dataPostRequest("https://myserver.com/","user_email=emailtest.com")
无论我尝试什么样的变化,我都会不断得到:
Cannot assign value of type '()' to type '[Int : Int]'
任何指导将不胜感激。
【问题讨论】:
-
URLSession. dataTask是异步的。使用完成处理程序 -
这能回答你的问题吗? function with dataTask returning a value
标签: arrays swift dictionary