视图控制器的UIActionSheetDelegate警告

时间:2011-03-27 22:16:16

标签: iphone objective-c cocoa-touch xcode ios4

我只用两个按钮设置了一个UIActionSheet弹出窗口,并为其中一个按钮分配了一个动作。该应用程序编译并运行并正常工作,但我收到警告:

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);

}

}

我应该忽略此构建警告吗?或者我该如何纠正警告?

2 个答案:

答案 0 :(得分:3)

您需要在大括号(<UIActionSheetDelegate>)之前的{上添加@interface在标题文件中以@interface MyViewController : UIViewController <UIActionSheetDelegate> { 开头的行。例如:

{{1}}

这会压制警告。

答案 1 :(得分:1)

您的错误意味着您没有实现UIActionSheetDelegate协议。要做到这一点,你必须在你的界面中实现它:

@interface MyViewController : UIViewController <UIActionSheetDelegate> {
}

UIActionSheetDelegate协议不需要方法,这就是您的应用程序不会崩溃的原因。