gpt4 book ai didi

swift - 处理 "NSURLConnection.sendAsynchronousRequest"时出错

转载 作者:行者123 更新时间:2023-11-30 12:30:21 26 4
gpt4 key购买 nike

当我执行NSURLConnection.sendAsynchronousRequest时,它总是显示相同的错误:

Invalid conversion from throwing function of type '(NSURLResponse?, NSData?, NSError?) throws -> Void' to non-throwing function type '(NSURLResponse?, NSData?, NSError?) -> Void'"

这是代码:

    progressBar.hidden = false
progressBar.progress = 0
var am = Int(ammount * 100)
var amToOwner = Int()
let process = Float(100-fee)*Float(ammount)/Float(100)
amToOwner = Int(self.roundToPlaces(0, number: process))
progressBar.progress = 33.3
let urlPath: String = "https://api.stripe.com/v1/charges"
let url: NSURL = NSURL(string: urlPath)!
let session = NSURLSession.sharedSession()
let request1: NSMutableURLRequest = NSMutableURLRequest(URL: url)

request1.HTTPMethod = "POST"
var stringPost = String()
stringPost="amount=\(am)&currency=eur&source=" + self.tok + "&description=\"\(description)\"&destination[account]=\(ownerAccountID!)&destination[amount]=\(try! Int(amToOwner*100))" // Key and Value
stringPost = stringPost.stringByReplacingOccurrencesOfString("\\", withString: "")
print(stringPost)

let data = stringPost.dataUsingEncoding(NSUTF8StringEncoding)

request1.timeoutInterval = 60
request1.HTTPBody=data
request1.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request1.setValue("Bearer " + _secretKey, forHTTPHeaderField: "Authorization")
request1.HTTPShouldHandleCookies=false
print(request1.allHTTPHeaderFields)
NSURLConnection.sendAsynchronousRequest(request1, queue: queue, completionHandler:{ (response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in)
self.progressBar.progress = 66.6
self.tok = ""
do {
self.progressBar.progress = 100
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
print("ASynchronous\(jsonResult)")
if jsonResult.valueForKey("error") != nil{
let alert = UIAlertController()
alert.title = "Error"
let callFunction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Cancel, handler: nil)
alert.addAction(callFunction)
alert.message = String(jsonResult.valueForKey("error")!.valueForKey("message")!)
self.presentViewController(alert, animated: true, completion: nil)
} else {
let alert = UIAlertController()
let callFunction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Cancel, handler: nil)
alert.addAction(callFunction)
alert.title = jsonResult.valueForKey("outcome")!.valueForKey("seller_message")! as! String
var amm = jsonResult.valueForKey("amount")!.floatValue / 100
alert.message = "Ammount: \(amm) \(jsonResult.valueForKey("currency")!)\n Description: \(jsonResult.valueForKey("description")!)"
self.presentViewController(alert, animated: true, completion: nil)
self.progressBar.hidden = true
}
}
} catch let error as NSError {
self.progressBar.progress = 100
print(error.localizedDescription)
self.progressBar.hidden = true
}


})

有什么错误吗?你能帮我吗?

我使用的是 XCode 7.3.1

最佳答案

我找到了解决方案:

NSURLConnection.sendAsynchronousRequest(request1, queue: queue, completionHandler:{ (response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in
self.progressBar.progress = 66.6
self.tok = ""
self.progressBar.progress = 100
if let jsonResult = try? NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
print("ASynchronous\(jsonResult)")
if jsonResult!.valueForKey("error") != nil{
let alert = UIAlertController()
alert.title = "Error"
let callFunction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Cancel, handler: nil)
alert.addAction(callFunction)
alert.message = String(jsonResult!.valueForKey("error")!.valueForKey("message")!)
self.presentViewController(alert, animated: true, completion: nil)
} else {
let alert = UIAlertController()
let callFunction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Cancel, handler: nil)
alert.addAction(callFunction)
alert.title = jsonResult!.valueForKey("outcome")!.valueForKey("seller_message")! as! String
var amm = jsonResult!.valueForKey("amount")!.floatValue / 100
alert.message = "Ammount: \(amm) \(jsonResult!.valueForKey("currency")!)\n Description: \(jsonResult!.valueForKey("description")!)"
self.presentViewController(alert, animated: true, completion: nil)
self.progressBar.hidden = true
}
}
})

关于swift - 处理 "NSURLConnection.sendAsynchronousRequest"时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43633390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com