我只用两个按钮设置了一个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);
}
}
我应该忽略此构建警告吗?或者我该如何纠正警告?
答案 0 :(得分:3)
您需要在大括号(<UIActionSheetDelegate>
)之前的{
上添加@interface
在标题文件中以@interface MyViewController : UIViewController <UIActionSheetDelegate> {
开头的行。例如:
{{1}}
这会压制警告。
答案 1 :(得分:1)
您的错误意味着您没有实现UIActionSheetDelegate协议。要做到这一点,你必须在你的界面中实现它:
@interface MyViewController : UIViewController <UIActionSheetDelegate> {
}
UIActionSheetDelegate协议不需要方法,这就是您的应用程序不会崩溃的原因。