2010-12-16 219 views
3

Je suis en train de développer une application iPhone utilisant le SDK 4.1 qui cible iOS 4.1 ou plus récent.
Les instruments signalent des fuites de mémoire pour le code ci-dessous.La mémoire fuit lors de l'utilisation de ALAssetsLibrary

void (^resultBlock)(ALAsset *) = ^(ALAsset *asset) { 
    NSLog(@"resultBlock"); 
}; 
void (^failureBlock)(NSError *) = ^(NSError *error) { 
    NSLog(@"error"); 
}; 
NSURL *url = [NSURL URLWithString:@"assets-library://asset/asset.JPG?id=1000000176&ext=JPG"]; 
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
[library assetForURL:url resultBlock:resultBlock failureBlock:failureBlock]; 
[library release]; 

Je viens de mettre ce code dans viewDidLoad de mon TestApp pour le test. (J'utilise avec UIImagePicker dans mon projet actuel.)
Quand je lance le TestApp en utilisant l'instrument (fuite), il signaler les fuites de mémoire environ 10 secondes après le lancement. Est-ce que quelqu'un peut me dire ce qui ne va pas avec ce code ou y a-t-il autre chose que je devrais faire?
Merci.

+0

J'ai le même problème et j'essaie de le retrouver moi-même. Avez-vous trouvé une solution? – jabroni

+0

Cette synchronisation "10 secondes après le lancement" se produit, car par défaut, Instruments prend un instantané toutes les 10 secondes. Vous pouvez changer cette fois dans Fuites - Instantanés - Intervalle d'instantané (sec). Vous pouvez également prendre un instantané manuel à tout moment au même endroit. – JOM

Répondre

0

Il n'y a rien de mal à la gestion de la mémoire dans le code que vous avez fourni. S'il y a une fuite, c'est dans les cadres d'Apple ou dans une autre partie de votre code. Assurez-vous simplement que vous testez sur l'appareil - certains cadres ont beaucoup plus «poli» sur l'appareil.

+0

Merci pour la réponse. Je n'ai encore trouvé aucune résolution. Mais il semble que la fuite de mémoire se produit une seule fois et ne donne pas de mauvaises influences, à l'exception des fuites, donc j'ai simplement ignoré ce problème. Apple n'a pas rejeté mon application pour ce problème. – tera