Tentei definir um encerramento usando os seguintes blocos Objective-C:
typedef void(^UPBaseEventAPIArrayCompletion)(NSArray *results, UPURLResponse *response, NSError *error);
+ (void)getFriendsWithCompletion:(UPBaseEventAPIArrayCompletion)completion;
nisso:
UPUserAPI.getFriendsWithCompletion({(friends: [AnyObject], response: UPURLResponse, error: NSErrorPointer) -> Void in
})
... e obteve o seguinte erro (veja a imagem):
Não é possível converter o valor do tipo "([AnyObject], UPURLResponse, NSErrorPointer) -> Void" para o tipo de argumento esperado "UPBaseEventAPIArrayCompletion!"
Qual é a maneira correta de fazer isso?
Respostas:
2 para resposta № 1Tente isso.
UPUserAPI.getFriendsWithCompletion({(friends: [AnyObject]?, response: UPURLResponse?, error: NSError?) -> Void in
//code
})
No código Objective C, qualquer um desses parâmetros pode ser nulo. Portanto, no Swift, esses parâmetros devem ser definidos como opcionais.