2012-01-10 4 views
3

UIImagePickerController을 추가하려고하는데 incompatible type 'id<UINavigationControllerDelegate,UIImagePickerControllerDelegate>' 컴파일러 경고가 표시됩니다. 이유를 알아야합니까? 그리고 그것을위한 해결책.UIImagePickerController 추가시 경고

하는 .m

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

compiler warning

[imagePicker setDelegate:self];에 대한 경고 포인트와 난이 발생하는 이유 단서가 없다 .H

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

. 당신이 UIImagePickerControllerdelegate 특성에 전달하는 것을 목적,이 경우 self이의 UIImagePickerControllerDelegateUINavigationControllerDelegate 프로토콜을 준수하지 않기 때문에

답변

10

이 경고를 받고 있습니다. 이는 UIImagePickerController이 이미 delegate이라고 선언 한 UINavigationController의 하위 클래스이기 때문입니다. 이 두 프로토콜을 따르는 객체 예측 수단

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

:

UIImagePickerControllerdelegate의 속성으로서 정의된다.

클래스가해야하는 @interface 선언 ...

@interface GobblesViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 
관련 문제