2011-03-27 57 views
0

我已經設置了一個UIActionSheet彈出只有兩個按鈕,併爲其中的一個分配了一個動作。該應用程序編譯和運行和正常工作,但我得到警告:UIActionSheetDelegate警告視圖控制器

warning: class 'MyViewController' does not implement the 'UIActionSheetDelegate' protocol 

這裏是我的動作片代碼:

- (IBAction)saveImage { 


    UIActionSheet *saveMenu = [[UIActionSheet alloc] initWithTitle:@"Save Image to Photo Library" 
                  delegate:self 
               cancelButtonTitle:@"Dismiss" 
              destructiveButtonTitle:nil 
               otherButtonTitles:@"Save Image", nil]; 

    [saveMenu showInView:self.view]; 
    [saveMenu release]; 

我對「保存圖像」簽署按鈕的動作:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 

if (buttonIndex == 0) { 

    UIImage* imageToSave = [imageView image]; // alternatively, imageView.image 

    //Save it to the camera roll/saved photo album 
    UIImageWriteToSavedPhotosAlbum(imageToSave, nil, nil, nil); 

} 

} 

我應該忽略此構建警告嗎?或者我該如何糾正警告?

回答

3

您需要在頭文件中以@interface開頭的行上的大括號({)之前添加<UIActionSheetDelegate>。例如:

@interface MyViewController : UIViewController <UIActionSheetDelegate> { 

這將壓制警告。

1

你的錯誤意味着你沒有實現UIActionSheetDelegate協議。要做到這一點,你必須實現它在你的界面那樣:

@interface MyViewController : UIViewController <UIActionSheetDelegate> { 
} 

並不需要的UIActionSheetDelegate協議的方法,這就是爲什麼你的應用程序不死機。

相關問題