Récursivité.
tablier
Membre
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:
Si oui, est-ce que ça passe avec ARC en suprimant le release bien sur?
NB: comment fait-on pour décaler les débuts de ligne dans cet éditeur?
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):- (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]] ; } ;
} ;
}
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?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
- [NSDictionnary initWithContentOfFile...] utilise ce concept.
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.