Swift syntaxe pour le bloc avec completionHandler... dans la méthode du délégué

C'est une ride sur l'NSURLSession achèvement bloc de problème, je vais avoir un diable de temps à résoudre dans Swift de la syntaxe. La méthode est la méthode d'authentification délégué de callback qui est appelée à auth défi; le développeur appelle l'achèvement bloc avec NSURLCredential, NSError.

L'Objective-C méthode ressemble à ceci:

-(void) provideUsernamePasswordForAuthChallenge:(NSURLAuthenticationChallenge *)authChallenge completionHandler:(void (^)(NSURLCredential *, NSError *))completionHandler{

    NSURLCredential* credential = [NSURLCredential credentialWithUser:@"myname" 
                                                             password:@"mypass" 
                                                          persistence:NSURLCredentialPersistenceForSession];
    completionHandler(credential, nil);
}

Le plus proche, je pense que j'ai obtenu dans Swift, est-ce:

func provideUsernamePasswordForAuthChallenge(authChallenge: NSURLAuthenticationChallenge!,  completionHandler:(() -> (NSURLCredential?, NSError?)) {

    var cred = NSURLCredential(user: "myname", password: "mypass", persistence: NSURLCredentialPersistence.ForSession)
    return (cred, nil)
})

Mais, c'est encore barfing. Toutes les recommandations?

quelle erreur avez-vous?

OriginalL'auteur Stan | 2014-06-19