Voici un extrait de mon code:UIImage CGImage: message envoyé à l'instance désallouées
dans le fichier .h:
@property (nonatomic, retain) UIImage *photo;
@property (nonatomic, retain) NSData *photoData;
dans le fichier .m:
@synthesize photo;
@synthesize photoData;
...
photo = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; {*}
...
NSLog(@"b1");
self.photoData = UIImagePNGRepresentation(self.photo);
NSLog(@"b2");
ici sont les journaux que je vois dans la console:
b1
*** -[UIImage CGImage]: message sent to deallocated instance 0x583b1d0
Comment puis-je empêcher ce problème "message envoyé à l'instance libérée"? Je suis très nouveau à ce sujet, donc j'apprécierais vraiment un peu de contexte pourquoi cela se produit? (Un pointeur sur quelques docs serait génial aussi)
Merci
MISE À JOUR: * L'erreur se produit ici. Merci à codelark pour le signaler. Si cette ligne est modifiée, l'erreur ne se produira pas.
photo = [[info objectForKey:@"UIImagePickerControllerOriginalImage"] retain];
le UIImage a été libéré quelque part dans le code clipsée sur. Le problème réside là, et non dans l'extraction des données photo. – codelark
Pouvez-vous poster du code montrant comment vous initialisez votre propriété 'photo'? – Echelon
codelark - vous étiez mort. Mise à jour de la question avec une ligne que j'avais précédemment dans mon code. – amehta