1

Quelque chose doit être mal avec ce code ici:Ai-je un problème de gestion de la mémoire ici?

+ (UIImage*)captureView:(UIView *)theView { 
    UIGraphicsBeginImageContext(theView.frame.size); 
    [theView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

Quand je l'utilise que, Xcode me lance ce message d'erreur:

malloc: * erreur pour objet 0x103f000: pointeur étant libéré n'a pas été alloué * mis un point d'arrêt dans malloc_error_break pour déboguer

Je ne vois aucune erreur de gestion de mémoire là-bas. Est-ce que quelqu'un d'autre?

+0

Avez-vous mis le point d'arrêt sur 'malloc_error_break' comme il vous a dit? Si oui, quelle était la pile d'appel? –

Répondre

1

J'ai eu le même avertissement. Mais, il ne se produit pas en 3.1 ou au-dessus.

+0

probablement un bug-cadre. Cela n'arrive que lorsque j'appelle -removeFromSuperview. Lorsque je m'en débarrasse dans le cadre de mon processus normal de suppression du contrôleur de vue, qui supprime également la vue, tout va bien. – dontWatchMyProfile

0

Vous ne trouvez pas. Définissez NSZombie activé dans la construction pour le retrouver.

Il pourrait être lié à un retour UIImage autoreleased à partir d'une méthode de classe qui sera probablement à l'intérieur d'une piscine temporaire autorelease. L'image pourrait être détruite par le drainage de cette piscine. Pour tester, déplacez la méthode vers une méthode d'instance et vérifiez si le problème disparaît.

+0

NSZombie n'aide pas beaucoup ici, parce que le code dans la trace de la pile est seulement des instructions de bras. Rien de mes propres choses visibles là jusqu'au lancement de la fonction main(). Merci pour l'indice avec la méthode de classe. Est-ce que cela a été une méthode d'instance, mais cela n'a pas résolu le problème. – dontWatchMyProfile

+0

NSZombie ne sera pas utile ici, comme cela semble être le cas »ci-dessous la couche ObjC (erreur de malloc). –

+0

Je crois qu'il est un bug-cadre dans la version 3.0 – dontWatchMyProfile