2010-08-09 7 views
0

Problème mystérieux (au moins pour moi). Voici ce que je faisUIImagePickerControllerDelegate Problèmes

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    UIImage *neoImage = [[info objectForKey:UIImagePickerControllerEditedImage] retain]; 
    NSLog(@"neoImage: %@", neoImage); 
    [self.images addObject:neoImage]; 
    [neoImage release]; 
    NSLog(@"self.images (inside delegate method): %@", self.images); 
    [self renderImages]; 
    [picker dismissModalViewControllerAnimated:TRUE]; 
} 

auto-images déclarées comme matrice mutable conservée et synthétisée. Je dois faire quelque chose de mal cependant, car si le code ci-dessus fonctionne comme prévu lorsque l'utilisateur sélectionne une image de leur rôle d'appareil photo, c'est la sortie NSLog quand ils prennent une nouvelle photo:

[2690:307] neoImage: <UIImage: 0x24f160> 
[2690:307] self.images (inside delegate method): (null) 

Je suis probablement négliger quelque chose d'évident? Toute aide serait appréciée.

NOTE: Je reçois aussi un avertissement de mémoire lorsque l'appareil est utilisé:

Received memory warning. Level=1 

Répondre

0

... ouais, je suis un crétin. C'était le problème de la mémoire. Je libérais self.ideas sur viewDidUnload et je suppose que la vue est libérée à la réception de l'avertissement de la mémoire parce qu'au moment où l'avertissement de la mémoire est reçu, la vue modale du sélecteur d'image est active, pas son parent. L'avertissement de la mémoire n'était levé que lorsque la caméra a été lancée, pas le sélecteur de rouleau de la caméra, donc le comportement différent en fonction de ce qui a été sélectionné.