Предупреждение при открытии камеры iOS

Я только начинаю работать в 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'

Я не понимаю предупреждающее сообщение и не знаю, как избавиться от предупреждения.

Спасибо,

EDIT:

Мой заголовочный файл для класса выглядит следующим образом:

  @interface todd_learningViewController : UIViewController <UIApplicationDelegate>

  - (IBAction)takePicture:(id)sender;

  @property (weak, nonatomic) IBOutlet UIImageView *pictureView;

  @end

Как мне его изменить?

Ответ 1

Сделайте свой класс реализованным UINavigationControllerDelegate, и это предупреждающее сообщение исчезнет. Все методы этого протокола являются необязательными, поэтому вам не придется изменять класс реализации.

Почему мы должны это делать, это то, что я пытаюсь понять, но на данный момент это решение.

Ответ 2

Сначала введите ниже делегатов в классе

<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