J'ai une classe racine et un nombre de classes enfants. J'ai aussi une classe DataManager censée contenir des méthodes statiques dans diverses catégories qui agissent sur un enfant particulier de cette classe racine. Supposons que pour la classe racine R, les classes enfants sont C1 & C2.Comment les appels de méthodes sont-ils résolus par argument dans les classes de catégories en Objective C?
Pour C1, j'ai une catégorie appelée DataManager + C1.
Pour C2, j'ai une catégorie appelée DataManager + C2.
J'ai une classe DataManager de base où j'ai déclaré cette méthode - d'où il est accessible partout - et il n'y a pas d'autres déclarations:
//DataManager.h
+ (NSDictionary *) Method1 : (DataModelRoot*) R;
//Note that R is my root class. Individual class implementations belong to DataManager+C1.m, DataManager+C2.m etc.
La mise en œuvre de Method1 réside dans DataManager + C1 ainsi que DataManager + C2.
Mais je ne vois pas de comportement polymorphe. En d'autres termes, lorsque l'appel Méthode1 de DataManager + C2 est attendu, celui de DataManager + C1 est appelé, bien que l'appel lui-même démarre à partir du fichier source DataManager + C2. (l'appelant peut être n'importe quelle catégorie DataManager - c'est un cas extrême).
Comment le nombre de catégories sur les objets situés dans la même hiérarchie de classe résout-il les appels de fonction?
PS: Notez à nouveau, que la méthode ci-dessus Method1 est seulement dans le fichier .h EXPOSE d'une classe (DataManager.h ordinaire) avec classe racine comme argument. Je suppose que cela assurera une invocation correcte en utilisant le type d'objet enfant, mais cela échoue.
Comment appelez-vous la méthode de classe? Veuillez poster le code de l'invocation actuelle. –