2010-01-29 6 views
0

J'ai une méthode simple pour lire une chaîne et d'analyser à un tableau,NSArray mémoire NSString fuite

-(NSArray *) readFileToArray: (NSString *)file{ 
    NSString *values = [NSString stringWithContentsOfFile: file]; 
    NSArray *tokens = [values componentsSeparatedByString:@":"]; 

    return tokens; 
} 

mais les instruments ne me rapport que j'eu une fuite sur NSString à la ligne

NSArray *tokens = [values componentsSeparatedByString:@":"]; 

Je ne sais pas pourquoi cela se produit,
1). Je pense que les valeurs et les jetons sont autoreleased? Ai-je raison?
2). J'ai essayé de libérer des valeurs et des jetons (juste un essai), il se bloque.

Merci pour votre aide à l'avance.

Michael

+0

Si vous étiquetez 'objective' et' c', vous n'obtiendrez des réponses que des programmeurs Objective et C. –

Répondre

0

Le code que vous avez posté utilise la gestion de la mémoire correcte (la valeur de retour est autoreleased). Regardez le code qui appelle readFileToArray: pour voir comment il gère le tableau retourné.

+0

Darren, Merci pour votre réponse. – user238009

0

La ligne qui est objet d'une fuite NSString *values = [NSString stringWithContentsOfFile: file];

Vous devez ajouter autorelease dans cette ligne pour réparer la fuite.