2014-04-24 3 views
1

je reçois cette erreur (méthode Void « undo: » ne devrait pas retourner une valeur) dans cette ligne de code:erreur: méthode Void « undo: » ne devrait pas retourner une valeur

return image; 

Quel est le problème et fait Quelqu'un sait-il une solution de cette erreur?

code:

- (IBAction)undo:(id)sender 
{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString* path = [documentsDirectory stringByAppendingPathComponent: 
        @"test.png" ]; 
UIImage* image = [UIImage imageWithContentsOfFile:path]; 
[self->_imagView setImage:image]; 
return image; 
} 

EDIT:

Que dois-je dire si le bouton "undo" est taraudée l'image doit être de retour?

code:

- (IBAction)undo:(id)sender 

{

}

- (UIImage*)loadImage 
{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString* path = [documentsDirectory stringByAppendingPathComponent: 
        @"test.png" ]; 
UIImage* image = [UIImage imageWithContentsOfFile:path]; 
return image; 
} 

- (void)saveImage: (UIImage*)image 
{ 
    if (image != nil) 
    { 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                 NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 
     NSString* path = [documentsDirectory stringByAppendingPathComponent: 
         @"test.png" ]; 
     NSData* data = UIImagePNGRepresentation(image); 
     [data writeToFile:path atomically:YES]; 
    } 
} 
+1

Si cela ne doit pas renvoyer de valeur, ne renvoyez pas de valeur. –

Répondre

3

Vous ne pouvez pas retourner une valeur à partir d'une méthode avec un type void de retour. IBAction est vraiment juste void.

Vous devez faire autre chose avec image en plus d'essayer de le renvoyer.

1

Pourquoi voulez-vous retourner quelque chose? À qui?

Faites simplement les étapes à suivre pour annuler. Probablement cela devrait être fait en utilisant un undo manager. Il n'est pas facile de se défaire soi-même et, à coup sûr, plus de travail que de simplement recharger l'image d'origine (deviner: non traitée).

+0

J'ai une image qui est enregistrée et sur l'image, vous pouvez appliquer des filtres et maintenant je vais créer un bouton Annuler qui est en train de charger l'image originale. – user3550084

+0

P.S J'ai mis à jour ma question – user3550084

+0

Annuler signifie annuler la dernière opération sur une pile d'opérations. Faire des opérations d'annulation en dehors de la pile d'annulation du système est difficile à survoler et je pense qu'il va se casser. –

Questions connexes