Récursivité.

tabliertablier Membre
octobre 2012 modifié dans API AppKit #1
Ma question est purement théorique: a-t-on le droit de faire une classe dont les instances ouvriront des instances de la même classe?

Ma question n'étant pas très claire, je m'explique:

Si l'on veut examiner la hiérarchie des dossiers-fichiers contenue par un dossier donné, généralement on utilise en C, C++ ou Objective-C une méthode (ou routine) ré-entrante dont le principe est:
- (void)recursif:(NSString *)chemin_dossier

{

NSInteger x;



NSArray *items = [la liste des chemins des items du dossier] ;

for (x=0 ; x<[items count] ; x++)

{

if ([items objectAtIndex:x] est un fichier ?)

{ traitement du fichier ; }

else

{ [self recursif:[items objectAtIndex:x]] ; } ;

} ;

}
Pour faire la même chose, ai-je le droit de faire une classe comme cela (même si ça n'a pas d'intérêt réel):

Si oui, est-ce que ça passe avec ARC en suprimant le release bien sur?
@Interface Recursif // Le fichier Recursif.h

- (id)initChemin:(NSString *)chemin_dossier ;

@end



#import "Recursif.h" // le fichier Recursif.m

@Implementation Recursif

- (id)initChemin:(NSString *)chemin_dossier

{

NSInteger x;



NSArray *items = [la liste des chemins des items du dossier] ;

for (x=0 ; x<[items count] ; x++)

{

if ([items objectAtIndex:x] est un fichier)

{ traitement du fichier ; }

else

{ id truc = Recursif alloc] initChemin:[items objectAtIndex:x ;

[truc release] ; } ;

} ;

}

@end




NB: comment fait-on pour décaler les débuts de ligne dans cet éditeur?

Réponses

  • Pourquoi n'aurait-on pas le droit ?



    - [NSDictionnary initWithContentOfFile...] utilise ce concept.
  • AliGatorAliGator Membre, Modérateur
    Oui je ne vois aucune raison de ne pas pouvoir le faire.
  • mpergandmpergand Membre
    octobre 2012 modifié #4
    'tablier' a écrit:


    Ma question est purement théorique: a-t-on le droit de faire une classe dont les instances ouvriront des instances de la même classe?

    Ma question n'étant pas très claire, je m'explique:

    Si l'on veut examiner la hiérarchie des dossiers-fichiers contenue par un dossier donné, généralement on utilise en C, C++ ou Objective-C une méthode (ou routine) ré-entrante dont le principe est:Pour faire la même chose, ai-je le droit de faire une classe comme cela (même si ça n'a pas d'intérêt réel):




    C'est d'autant plus valide que c'est ce que tu ferais si tu voulais conserver cette hiérarchie dans un arbre binaire.

    Mais comme tu te contentes de parcourir cette hiérarchie, cette façon de faire ne présente que peu d'intérêt par rapport à  la méthode récursive classique.
  • image/huh.gif' class='bbc_emoticon' alt='???' /> ok, j'ai rien dit!
Connectez-vous ou Inscrivez-vous pour répondre.