Comment créer un protocole avec des méthodes qui sont en option?
J'ai remarqué méthodes marqué facultatif dans plusieurs protocoles définis dans le SDK de l'iPhone, comme la UIActionSheetDelegate
protocole par exemple.
Comment puis-je définir un protocole de mes propres, et fixer quelques méthodes comme option?
Vous devez vous connecter pour publier un commentaire.
À partir de la page Apple sur "Les Protocoles Officiels":
Si une méthode dans un protocole est marqué comme facultatif, vous devez vérifier si un objet implémente cette méthode avant d'essayer de l'appeler.
Comme un exemple, le diagramme de la vue pourraient test pour le titre segment méthode comme ceci:
La respondsToSelector: méthode utilise un sélecteur, qui se réfère à l'identification d'une méthode après la compilation. Vous pouvez fournir l'identificateur correct en utilisant le @selector() de la directive et en spécifiant le nom de la méthode.
Si la source de données dans cet exemple met en œuvre la méthode, le titre est utilisé; sinon, le titre reste nul.
@protocol MyProtocol <NSObject>
Protocoles est un ensemble de règles. Nous pouvons créer des protocoles comme l'exemple ci-dessous:
TestProtocols.h
Mise en œuvre:
TestClass.h
TestClass.m
Utiliser le
@optional
mot-clé avant de votre déclaration de méthode pour la rendre facultative. Simple que cela!Protocoles d'agir de la même que les classes abstraites, de sorte que le @mot-clé facultatif définit les méthodes qui sont disponibles en option pour la mise en œuvre.
Donc, dans le code, someMethod1, someMethod2 et someMethod4 sont les méthodes requises (doit être mis en œuvre). someMethod3 est facultatif - si nous n'avions pas de mettre en œuvre cette méthode, le compilateur ne pas jeter des mises en garde.