10

我刚刚开始进行 iOS 开发,所以对于我的第一个项目,我正在开发一个简单的 iOS 应用程序来拍摄照片并将其显示在屏幕上。

这是我的代码,在第四行出现错误:

- (IBAction)takePicture:(id)sender {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType =  UIImagePickerControllerSourceTypeCamera;
    imagePicker.delegate = self;
    [self presentModalViewController:imagePicker animated:YES];
}

我收到以下警告:

  Assigning to 'id<UINavigationControllerDelegate,UIImagePickerControllerDelegate>' from incompatible type 'todd_learningViewController *const __strong'

我不明白警告信息,也不知道如何摆脱警告。

谢谢,

编辑:

我的类头文件如下所示:

  @interface todd_learningViewController : UIViewController <UIApplicationDelegate>

  - (IBAction)takePicture:(id)sender;

  @property (weak, nonatomic) IBOutlet UIImageView *pictureView;

  @end

我应该如何修改它?

4

2 回答 2

16

让你的班级实施UINavigationControllerDelegate,这个警告信息就会消失。此协议中的所有方法都是可选的,因此您不必修改您的实现类。

为什么我们必须这样做仍然是我试图弄清楚的事情,但现在这是解决方案。

于 2012-06-02T17:00:06.520 回答
-1

首先在类中实现下面的委托

<UIPickerViewDelegate,UIPickerViewDataSource>

@interface className : NSObject <UIApplicationDelegate,UIPickerViewDelegate,UIPickerViewDataSource> {


}

应该是这样的

@interface todd_learningViewController : UIViewController <UIApplicationDelegate,UIPickerViewDelegate,UIPickerViewDataSource>{

    }

  - (IBAction)takePicture:(id)sender;

  @property (weak, nonatomic) IBOutlet UIImageView *pictureView;

  @end
于 2012-05-30T09:32:58.467 回答