我在尝试附加HTTPbody时遇到了这个无意义的错误,但在谷歌搜索时我找不到任何答案。
func runRequest(url: String,arguments:String, method: String, closure: (NSData?, NSURLResponse, NSError?)->Void){
var finalUrl:String
var request:NSMutableURLRequest
if (method == "POST"){
finalUrl = url
request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = "POST"
let data = (arguments as NSString).dataUsingEncoding(NSUTF8StringEncoding)
request.HTTPBody(data) // <-- Error here
}else{
finalUrl = url + arguments
request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = "GET"
}
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
(data, response, error) in
closure(data, response, error)
}
task.resume()
}
任何线索?
答案 0 :(得分:2)
HTTPBody
是属性,而不是方法。您需要分配给它而不是调用它:
request.HTTPBody = data
顺便说一下,您可能希望将其更改为更安全的内容:
NSURL(string: url)!
NSURL的初始化程序是一个“可用的”初始化程序 - 也就是说,如果出现错误(例如,URL格式不正确),它会返回一个可选nil
的可选项。如果发生这种情况,!
上的nil
将导致程序崩溃:
// fatal error: unexpectedly found nil while unwrapping an Optional value
let url = NSURL(string: "blah blah blah")!