2017-04-26 3 views
0

Wenn ich ausführen die NSURLConnection.sendAsynchronousRequest es immer die gleichen Fehler zeigen:Fehler beim Umgang mit "NSURLConnection.sendAsynchronousRequest"

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

Dies ist der Code:

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 
     } 


    }) 

Was ist der Fehler? Kannst du mir helfen?

ich XCode bin mit 7.3.1

+0

Sie den Fehler dupliziert, aber da kein Abschlags nichts angegeben, weder als Fehler zeigte. Ich eliminierte sowohl die Duplizierung als auch die hinzugefügte Abschrift, um es wie "Fehlertext" aussehen zu lassen. – dfd

Antwort

0

ich finded die Lösung:

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 
       } 
     } 
    }) 
Verwandte Themen