【发布时间】:2016-11-13 16:00:49
【问题描述】:
这是我的代码:
let request = NSMutableURLRequest(URL: NSURL(string: "http://www.example.com/submit.php")!)
request.HTTPMethod = "POST"
let postString = "user_name="+user_name+"&first_name="+first_name.text+"&last_name="+last_name.text+"&company_name="+company_name.text+"&location="+location.text+"&phone="+phone.text+"&website="+website.text+"&email="+email.text+"&about="+about.text
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
当我尝试运行应用程序时,postString 上出现以下错误:
表达式太复杂,无法在合理的时间内解决;考虑将表达式分解为不同的子表达式
【问题讨论】:
-
按照编译器告诉你的去做。与其将所有内容都填充在同一个表达式中,不如创建几个,它将帮助编译器知道会发生什么。 :)
-
@EricD 谢谢你。我该怎么做?
-
你有一个
postString的大声明,在一行上添加了许多变量。相反,首先制作它的一部分,例如名称,并将其存储在变量中;然后使用另一行添加其余部分。喜欢let names = xxx + xxx然后做let postString = names + xxx + xxx等等。 -
您的实际代码中是否也缺少 PHP URL 末尾的引号? (另外,避免直接字符串连接,使用字符串插值代替:
"user_name=\(user_name)&first_name=\(first_name.text)&..."