2011-06-29 10 views
0

Je suis nouveau à la gestion de la mémoire, et j'ai recherché des sujets similaires, mais je n'ai pas trouvé un exemple simple provoquant une fuite de mémoire. Je suis en train de tester mon application avec Instruments et il me dit que j'ai une fuite de mémoire de 144 octets dans pushViewController.fuite de mémoire dans pushViewController

RootViewController:

- (IBAction)optionsAction 
{ 
    optionsViewController *ovc = [[optionsViewController alloc] init]; 
    // MEMORY LEAK 100.0% 
    [self.navigationController pushViewController:ovc animated:YES]; 
    [ovc release]; 
} 

optionsViewController.h

@interface optionsViewController : UIViewController <ADBannerViewDelegate> { 
    UISlider *volumeSlider; 
    UISwitch *soundSwitch; 
    SystemSoundID SSID; 
} 
@property (nonatomic, retain) IBOutlet UISwitch *soundSwitch; 
@property (nonatomic, retain) IBOutlet UISlider *volumeSlider; 
@property (assign) SystemSoundID SSID; 

@end 

optionsViewController.m

- (void)dealloc 
{ 
    [volumeSlider release]; 
    [soundSwitch release]; 
    AudioServicesDisposeSystemSoundID(self.SSID); 
    [super dealloc]; 
} 

Avez-vous une idée de ce que pourrait être la raison de cette fuite? Pouvez-vous dire où devrais-je rechercher le problème, rootViewController ou optionsViewController?

+0

Vérifiez la fonction 'init' du contrôleur' optionsViewController'. – Jhaliya

+0

Init est deafult: - (id) initWithNibName: (NSString *) paquet nibNameOrNil: (NSBundle *) nibBundleOrNil { self = [super initWithNibName: paquet nibNameOrNil: nibBundleOrNil]; if (self) { // Initialisation personnalisée } return self; } – pawel221

Répondre

0

Je pense que AppSoundEngine pourrait vous simplifier la vie :) C'est un wrapper objectif-c pour les sons du système, facile à utiliser. Vous pouvez gérer les compétences de jeu sonore pour la classe dédiée. Votre contrôleur de vue serait moins stressé :)