2009-12-02 7 views
0

J'ai 8 méthodes dans ma demande, et chacun appelle une seule méthode - (void) someFunction,méthodes d'appel dans ObjC

Comment savoir à l'intérieur du - (void) someFunction dont l'un de ces 8 les méthodes l'ont appelé?

Toutes les suggestions sont appréciées.

Merci

Répondre

2

Une façon est d'ajouter un paramètre int à someFunction et la méthode d'appel peut s'identifier avec une valeur unique.

Par exemple:

-(void)someFunction:(int)callerId { //switch or if stmt here based on callerId } 

méthode puis en appelant appellerait someFunction avec CALLERID 1, méthode B avec CALLERID 2, etc.

0

Je ne suis pas très familier avec Objective C, mais il semble comme vous voulez une trace de pile. Vous pourriez être en mesure d'obtenir cela en lançant une exception. (Certaines langues ont un moyen d'obtenir la trace de la pile d'autres façons, mais comme je l'ai dit, je ne connais pas assez l'objectif C pour le savoir.) Related question on StackOverflow.

1

Cela semble facile - passer un argument à la fonction qui détermine quelle méthode il était.

3

Repensez votre conception. Vos méthodes ne doivent ni connaître ni se soucier du code qui les invoque. Tout ce qu'ils doivent savoir devrait être dans les paramètres qu'ils reçoivent.

Questions connexes