Pour envoyer des messages selon la fonction principale void objc_msgSend(id self,SEL cmd,...) dans le mécanisme de transmission des messages d'exécution, recherchez d'abord la méthode appelante de la classe actuelle, si elle n'est pas trouvée, continuez à l'appeler depuis sa classe parent En recherchant couche par couche, si la même méthode est réécrite pour la catégorie, alors pendant le processus de livraison du message, la méthode de la catégorie sera trouvée en premier et exécutée. Pour que plusieurs catégories appellent la même méthode, Xcode compile selon l'ordre de haut en bas dans buildPhases->Compile Sources au moment de l'exécution. Plusieurs catégories sont placées sur la pile lors de la compilation, selon la méthode du dernier entré, premier sorti. . En principe, celle post-compilée sera appelée en premier Lorsque objc_msgSend trouvera la méthode et l'appellera, elle ne continuera plus à transmettre des messages, elle forme donc ce qu'on appelle un remplacement. Cela ne signifie pas nécessairement que celui créé ultérieurement sera appelé. Cela dépend de son emplacement dans buildPhases->Compile Sources après la création.
Remplacement selon l'ordre des méthodes de classification de chargement d'exécution Généralement, la dernière méthode de chargement de la classification est implémentée
Pour envoyer des messages selon la fonction principale void objc_msgSend(id self,SEL cmd,...) dans le mécanisme de transmission des messages d'exécution, recherchez d'abord la méthode appelante de la classe actuelle, si elle n'est pas trouvée, continuez à l'appeler depuis sa classe parent En recherchant couche par couche, si la même méthode est réécrite pour la catégorie, alors pendant le processus de livraison du message, la méthode de la catégorie sera trouvée en premier et exécutée. Pour que plusieurs catégories appellent la même méthode, Xcode compile selon l'ordre de haut en bas dans buildPhases->Compile Sources au moment de l'exécution. Plusieurs catégories sont placées sur la pile lors de la compilation, selon la méthode du dernier entré, premier sorti. . En principe, celle post-compilée sera appelée en premier Lorsque objc_msgSend trouvera la méthode et l'appellera, elle ne continuera plus à transmettre des messages, elle forme donc ce qu'on appelle un remplacement. Cela ne signifie pas nécessairement que celui créé ultérieurement sera appelé. Cela dépend de son emplacement dans buildPhases->Compile Sources après la création.
Remplacement selon l'ordre des méthodes de classification de chargement d'exécution
Généralement, la dernière méthode de chargement de la classification est implémentée