警告添加UIImagePickerController

问题描述:

我试图添加一个UIImagePickerController,我得到一个incompatible type 'id<UINavigationControllerDelegate,UIImagePickerControllerDelegate>'编译器警告。我需要知道为什么?并为其提供解决方案。警告添加UIImagePickerController

.M

imagePicker = [[UIImagePickerController alloc] init]; 
[imagePicker setDelegate:self]; 

@interface GobblesViewController : UIViewController <UIImagePickerControllerDelegate> 
{ 
    UIImagePickerController *imagePicker; 
} 
@property (nonatomic,strong)UIImagePickerController *imagePicker; 

compiler warning

警告点[imagePicker setDelegate:self];,我不知道这是为什么发生的.h。

你得到这个警告,因为对象,self在这种情况下,你传递到UIImagePickerControllerdelegate财产,不符合UIImagePickerControllerDelegateUINavigationControllerDelegate协议。这是因为UIImagePickerControllerUINavigationController的一个子类,它已经声明它自己的delegate

UIImagePickerController上的delegate属性被定义为:

@property (nonatomic, assign) id <UINavigationControllerDelegate, UIImagePickerControllerDelegate> delegate; 

这意味着它是预期符合这两个协议的任何对象。

@interface声明你的类应该是...

@interface GobblesViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate>