2014-04-24 43 views
1

我得到這個錯誤(void方法「撤消:」應該沒有返回值)在這行代碼:錯誤:void方法「撤消:」應該沒有返回值

return image; 

什麼是錯的,不有人知道這個錯誤的解決方案?

代碼:

- (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; 
} 

編輯:

什麼我不得不說,如果 「撤消」 按鈕被點擊圖像應返回?

代碼:

- (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

如果它不應該返回一個值,那麼不要返回一個值。 –

回答

3

你不能用一個void返回類型從一個方法返回一個值。 IBAction其實只是void

除了嘗試返回它之外,您還需要使用image做其他事情。

1

爲什麼你想要返回任何東西?給誰?

只需執行要撤消的步驟。可能這應該使用undo manager來完成。

做自己的撤銷並不容易,而且肯定比簡單地重新加載原始(猜測:未處理的)圖像更容易。

+0

我有一個圖像被保存在圖像上,你可以應用過濾器,現在我將創建一個正在加載原始圖像的撤消按鈕。 – user3550084

+0

P.S我更新了我的問題 – user3550084

+0

撤消意味着撤銷一堆操作中的最後一個操作。要在系統撤消堆棧外執行撤消操作很難概述,我認爲它會中斷。 –