10

私は iOS 開発を始めたばかりなので、最初のプロジェクトでは、写真を撮って画面に表示する簡単な iOS アプリケーションを開発しています。

これが私のコードです。エラーが発生するのは4行目です。

- (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'

警告メッセージが理解できず、警告を取り除く方法がわかりません。

ありがとう、

編集:

クラスのヘッダー ファイルは次のようになります。

  @interface todd_learningViewController : UIViewController <UIApplicationDelegate>

  - (IBAction)takePicture:(id)sender;

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

  @end

どのように変更すればよいですか?

4

2 に答える 2

16

クラスを実装するUINavigationControllerDelegateと、この警告メッセージは消えます。このプロトコルのすべてのメソッドはオプションであるため、実装クラスを変更する必要はありません。

なぜこれをしなければならないのかはまだ解明しようとしているところですが、今のところこれが解決策です。

于 2012-06-02T17:00:06.520 に答える
-1

クラスのデリゲートの下に最初に実装する

<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
于 2012-05-30T09:32:58.467 に答える