Commutateur Objective-C utilisant des objets?

Je suis en train de faire quelques Objective-C programmation qui implique l'analyse d'un NSXmlDocument et de remplir un de propriétés d'objets à partir du résultat.

Première version ressemblait à ceci:

if([elementName compare:@"companyName"] == 0) 
  [character setCorporationName:currentElementText]; 
else if([elementName compare:@"corporationID"] == 0) 
  [character setCorporationID:currentElementText]; 
else if([elementName compare:@"name"] == 0) 
  ...

Mais je n'aime pas le if-else-if-else modèle de ce produit. En regardant les switch déclaration, je vois que je ne peut gérer que intschars etc et non pas des objets... donc, il y a une meilleure mise en œuvre de patron je ne suis pas au courant?

BTW, je n'ai vraiment trouver une meilleure solution pour paramétrer les propriétés de l'objet, mais je veux savoir précisément de la if-else vs switch modèle en Objective-C

source d'informationauteur craigb