Est-il préférable d'utiliser id ou NSSomeObject * lorsque cela est possible? Je sais que le compilateur peut mieux vérifier quand c'est explicite, mais je me demandais juste quelle est la meilleure pratique.(id) vs (NSSomeObject *) dans Objective-C/Cocoa?
.: par exemple
- (IBAction)someButton:(id)sender
contre
- (IBAction)someButton:(NSButton *)sender.
Y a-t-il des avantages à l'un de ces?
Non true. Si vous laissez la déclaration en tant que NSButton *, le compilateur vous avertira si vous essayez de passer une instance d'objet d'un type différent, mais comme les méthodes Objective-C sont en retard, tout objet répondant aux sélecteurs appropriés (méthodes) fonctionnera lors de l'exécution. –
Vous n'avez pas besoin de réellement passer le self comme argument pour un IBAction - c'est juste un argument normal. Heck, dans la plupart des cas, vous pouvez simplement passer nul en tant qu'expéditeur de toute façon. – Chuck
ou déclarez la méthode comme '- (IBAction) someButton', ce qui est correct dans de nombreux cas. –