with funciones finished error code swift swift2

funciones - No se puede invocar ''sendAsynchronousRequest'' en Swift 2 con una lista de argumentos



finished with error code (4)

Parece que el problema está con tus opciones implícitas sin envolver en el bloque de finalización. Simplemente hazlo opcional y debería funcionar bien,

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response: NSURLResponse?, data: NSData?, error: NSError?) in let string = NSString(data: data!, encoding: NSISOLatin1StringEncoding) print("Response /(string!)") }

Actualmente estoy reescribiendo partes de mi código Swift 1.2 para compatibilidad con Swift 2.0. En realidad, no puedo entender qué cambios se realizan a "sendAsynchronousRequest" - actualmente todas mis solicitudes fallan

NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in})

No se puede invocar ''sendAsynchronousRequest'' con una lista de argumentos de tipo ''(NSURLRequest, queue: NSOperationQueue, completionHandler: (NSURLResponse !, NSData !, NSError!) -> Void)''

¿Tienes alguna idea de lo que está mal?


Con Swift 1.2 y Xcode 6.3, la firma de sendAsynchronousRequest:queue:completionHandler: es:

class func sendAsynchronousRequest(request: NSURLRequest, queue: NSOperationQueue!, completionHandler handler: (NSURLResponse!, NSData!, NSError!) -> Void)

Con Swift 2 y Xcode 7 beta, sin embargo, la firma de sendAsynchronousRequest:queue:completionHandler: ha cambiado y ahora es:

// Note the non optionals, optionals and implicitly unwrapped optionals differences class func sendAsynchronousRequest(request: NSURLRequest, queue: NSOperationQueue, completionHandler handler: (NSURLResponse?, NSData?, NSError?) -> Void)

Como consecuencia, al pasar a Swift 2 y Xcode 7 beta, tendrá que cambiar la implementación de su parámetro de ejecución de gestor y asegurarse de que su parámetro de queue no sea opcional.


Dado que NSURLConnection.sendAsynchronousRequest está en desuso en iOS 9. ¿Debería usar NSURLSession public func dataTaskWithRequest(request: NSURLRequest, completionHandler: (NSData?, NSURLResponse?, NSError?) -> Void) -> NSURLSessionDataTask


veloz 3

let url:URL? = URL(string:location) if url == nil { print("malformed url : /(location)") } NSURLConnection.sendAsynchronousRequest(URLRequest(url:url!), queue: OperationQueue.main) { (response: URLResponse?, data: Data?, error: Error?) -> Void in }