par exemple, les méthodes de délégués NSXMLParser - ils existent, le délégué est défini, mais je ne veux pas les appeler comme moi dans mon contrôleur de vue ... quelle autre option ai-je?
Vous pouvez spécifier une autre classe personnalisée pour gérer les méthodes de délégation, si vous le souhaitez. Il suffit de créer une classe, appelez-le MyXMLParserDelegate
ou quelque chose de similaire. Ensuite, tout ce que vous avez à faire est de dire à votre objet NSXMLParser
qu'il devrait utiliser une instance de votre classe en tant que délégué.
Si vous utilisez Interface Builder, ajoutez un nouvel objet dans le fichier XIB, définissez sa classe à MyXMLParserDelegate
, puis faites glisser une connexion à partir de votre sélection de l'objet NSXMLParser
delegate
au nouvel objet.
Si vous le faites par programmation, le fonctionnement de base ressemble à ceci:
MyXMLParserDelegate * myDelegate = [[MyXMLParserDelegate alloc] init];
[someXMLParser setDelegate:myDelegate];
Gardez à l'esprit, cependant, que les délégués ne sont pas conservés, ainsi afin de le faire sans fuite de mémoire, vous devez ajouter un Ivar de type MyXMLParserDelegate
à votre classe viewController, puis procédez comme suit:
// in your @interface block:
{
...
MyXMLParserDelegate * myDelegate;
}
// in your init method:
myDelegate = [[MyXMLParserDelegate alloc] init];
// in your awakeFromNib method (or anywhere else it seems appropriate):
[someXMLParser setDelegate:myDelegate];
// in your dealloc method:
[myDelegate release];
Salut Merci - cela fonctionne, et c'est ce que je fais, donc c'est bien. – mootymoots