我刚刚开始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
我应该如何修改它?
答案 0 :(得分:16)
使您的类实现UINavigationControllerDelegate
,此警告消息将消失。此协议中的所有方法都是可选的,因此您无需修改实现类。
为什么我们必须这样做仍然是我想要弄清楚但现在这是解决方案。
答案 1 :(得分:-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