2009-06-13 9 views
0

je charger des fichiers .wav dans mon application iPhone comme ceci:Comment puis-je libérer ou libérer la mémoire allouée à un fichier .wav?

SoundEngine_LoadLoopingEffect([[bundle pathForResource:@"loop" ofType:@"wav"] UTF8String], NULL, NULL, &MySounds[Loop]); 

SoundEngine_LoadEffect([[bundle pathForResource:@"intro" ofType:@"wav"] UTF8String], &MySounds[IntroMusic]); 

Le fichier "intro.wav" prend un peu d'espace (environ 2 meg). Je le joue une seule fois quand l'application démarre. Je voudrais libérer ou libérer la mémoire allouée pour ce fichier .wav. Comment puis-je faire ceci?

Est-ce que:

SoundEngine_Teardown(); 

version toute la mémoire que j'ai attribué en appelant SoundEngine_LoadEffect?

Répondre

1

Il faut supprimer les références à - mais parce que vous ne l'avez pas appelé « alloc » ou « init » sur ces objets vous-même, vous n'êtes pas « propre » eux (c'est la règle d'or de la gestion de la mémoire ObjC)

Ils seront transmis au pool autorelease du thread de contrôle et libérés si nécessaire. En d'autres termes, ce n'est pas quelque chose dont vous devez vous inquiéter.

+0

Hey merci pour la réponse :-) Et si je veux réellement charger, lire, décharger les fichiers .wav? (Les fichiers peuvent être gros et je ne veux pas utiliser de mémoire quand je n'en ai pas besoin) – MrDatabase

+0

J'utiliserais libsndfile - beaucoup plus facile que d'essayer de jongler avec les choses intégrées, en particulier pour .wav – Chaos

Questions connexes