J'essaie de passer un object dictionary à un protocole Objective C en utilisant swift.
l'extrait de code de protocole est le suivant:
@protocol MessageDelegate - (void)handleNewMessageArrived:(NSDictionary *)messageContent; @end
et c'est la class rapide qui implémente le protocole:
class ViewController: UIViewController, MessageDelegate { ... func handleNewMessageArrived(messageContent : NSDictionary!) { ... } }
Mais la construction échoue, et l'erreur que je reçois est:
" le type 'ViewController' n'est pas conforme au protocole 'MessageDelegate '
J'ai regardé cette question SO, mais il s'agit d'un type d'object spécifique.
Y a-t-il une erreur dans la façon dont je déclare \ implémenter la méthode déléguée? ou de la manière dont je suppose que les arguments sont mappés dans swift?
Je suis nouveau à Swift donc toute aide sera très appréciée.
Essayez d'implémenter la méthode dans votre class Swift comme ceci:
func handleNewMessageArrived(messageContent: [NSObject : AnyObject]!) { // Handle the message }
Dans le cas de Swift 3, voici ce dont vous aurez besoin
func handleNewMessageArrived(messageContent: [AnyHashable : Any]!) { // Handle the message }