2012-01-10 9 views
3

UIImagePickerControllerを追加しようとしていますが、incompatible type 'id<UINavigationControllerDelegate,UIImagePickerControllerDelegate>'コンパイラ警告が表示されます。私はなぜそれを知る必要がありますか?そのための解決策です。 [imagePicker setDelegate:self];警告:UIImagePickerControllerを追加するとき

.M

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

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

compiler warning

.hの警告ポイントと私は、これが発生している理由は見当もつかない。あなたはUIImagePickerControllerdelegateプロパティに渡していることをオブジェクト、この場合はselfは、UIImagePickerControllerDelegateUINavigationControllerDelegateプロトコルに準拠していないため

答えて

10

あなたは、この警告を取得しています。これは、UIImagePickerControllerUINavigationControllerのサブクラスであり、すでに自身のdelegateと宣言しているためです。それは、これら2つのプロトコルに準拠する任意のオブジェクトを予想されることを意味

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

UIImagePickerControllerdelegate性は以下のように定義されます。あなたのクラスの

@interface宣言は...

@interface GobblesViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 
する必要があります
関連する問題