2014-06-14 5 views
-1

UIImageView에서 필터를 추가 할 수있는 이미지를 표시하도록 사진 라이브러리를 연결하려고하지만 사진을 선택하고 '선택'을 누르면 앱이 충돌합니다. 아래는 내가 사용하고있는 코드입니다. - (IBAction를) chooseImage (ID) 송신기 {UIImagePickerController 대리자 경고 - 호환되지 않는 유형

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 

picker.delegate = self; 

picker.allowsEditing = YES; 

picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

[self presentViewController:picker animated:YES completion:nil]; 

} 

오류가 일치한다 :

"picker.delegate = self;" 

과 호환 형에서 'ID'에 할당 "*로서 주목 'VSViewController const_strong '

사람이 나 작동 다른 코드를 수정하는 방법에 대한 제안이있는 경우, 즉 감사하겠습니다하시기 바랍니다.

복잡한 언어를 피하기 위해 노력하십시오. 코딩에 익숙하지 않으며이 문제는 당황 스럽습니다.

+0

당신이 당신의 .H에 UIImagePickerController를 대리자를 포함 있나요? – JMarsh

+0

그렇게 생각하지 않습니다. 코딩은 무엇입니까? – user3739491

+0

아래의 VSAppDelegate.h 또는 VSViewController.h? 나는 둘 다 시도했지만 어느 쪽에도 '@protocol'이 없다. – user3739491

답변

1

헤더 파일에서 프로토콜을 준수해야합니다.

@interface YourViewController : UIViewController<UIImagePickerControllerDelegate>

그리고 당신은 프로토콜 선택기를 구현해야합니다.

는 참조 할 수 있도록이 읽기 : https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIImagePickerControllerDelegate_Protocol/index.html

+0

헤더 파일이 어느 것이 었는지 확인하십시오. – user3739491

+0

헤더 파일은'.h'로 끝나는 파일입니다. 또한 @David Xu, 코드를 업데이트해야합니다. UIImagePickerControllerDelegate는 UINavigationController 프로토콜도 준수해야합니다. – user2277872

2

클래스는 실제로 UINavigationControllerDelegate뿐만 아니라 모두 UIImagePickerControllerDelegate을 준수해야합니다. 이것은 클래스 선언에 수행됩니다

@interface VSViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 
/* ... */ 
@end 

그 이유는 여기에 포함되었습니다 iPhone - UIImagePickerControllerDelegate inheritance

+0

프로젝트에 어디에 입력해야합니까? 델리게이트 또는 .h 또는 .m 파일? 주 파일에 무엇이든 추가해야합니까? – user3739491

+0

'VSViewController'는 작성한 클래스입니까? – nklauza

+0

내가 코딩하고있는 것이 맞습니까? – user3739491