• 締切済み

iOSでopenCVサンプル実行時のエラー

いつも利用させていただいています。 現在opencvを使ってipadのアプリを作ろうとしていて下記のサイトに辿りつきました。 http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja このサイトからリンクされている下記のサンプルソースをダウンロードしてipadの画面一杯に表示するためにtarget device familyを「iphone/ipad」に変更して実行した所、OpenCVTestViewController.mの191行目のshowInView:self.viewでエラーが発生しています。 ダウンロードサイト http://github.com/niw/iphone_opencv_test/ エラー内容 「Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: view != nil'」 実行ソース一部抜粋 UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Use Photo from Library", @"Take Photo with Camera", @"Use Default Lena", nil]; actionSheet.actionSheetStyle = UIActionSheetStyleDefault; actionSheetAction = ActionSheetToSelectTypeOfSource; [actionSheet showInView:self.view]; [actionSheet release]; 当方の環境はxcode4のiOS4.3です。 元々のソースがiphone用なのでipadで、actionsheetの表示を行えるようにソースを変更する必要があると思うのですがうまく動作しません。 cancelButtonTitleにnilを入れるなどの対策はしてみましたがエラーはなくなりません。 解決策がわかる方いらっしゃいましたら、お教え願います。

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.4

>作り方があってるかわかりませんが、iphoneアプリプロジェクトを新規で作成して universal は window-base で。

tomokidayo
質問者

補足

window-baseですね!作って確かめてみます。 またご報告します!

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.3

>ターゲットデバイスがiphoneだけだと動いている ははぁ なるほどね ターゲットを変更してるだけで iPadで起動した時の処理が書いてないんじゃない? 何言ってるか判らなかったら なんでも良いから iPhone/iPad universal でプロジェクトを1つ新規で作ってごらん。 それを見ながら「え こんなことやってない」っていうのを自分のに取り込んだら良いよ。 やれば多分判るんじゃないかな。「あ、確かにこれはiPadでview無いって言われるよ」って。

tomokidayo
質問者

補足

回答ありがとうございます! 作り方があってるかわかりませんが、iphoneアプリプロジェクトを新規で作成して、 deviceをipadに変更した所、ipadフォルダが自動作成され、xxx-ipad.xibというファイルが作られていました。今回のプロジェクトも確認してみた所同じようなファイルができていたのまでは確認できました。実行ファイルのソースはiphone用しかないのでこの後にipad用のソースを作るか、iphone用のソースにipadとiphoneの分岐処理を入れる必要があるという意味であってますでしょうか? 実際にエラーになっている処理の直前にselfとself.viewのログを入れて出力してみたのですが、view自体はありそうな感じがするのですが、それ事態も勘違いでしょうか? 実際のログ iphone実行時 2011-09-29 11:27:48.615 OpenCVTest[5928:b303] self=<OpenCVTestViewController: 0x5d10820>self.view=<UIView: 0x5d10a40; frame = (0 20; 320 460); autoresize = W+H; layer = <CALayer: 0x5d10c30>> ipad実行時 2011-09-29 11:21:35.366 OpenCVTest[5898:b303] self=<OpenCVTestViewController: 0x4f44be0>self.view=<UIView: 0x4f44dc0; frame = (0 20; 768 1004); autoresize = W+H; layer = <CALayer: 0x4f45000>>

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

引用コード中3行目: actionSheetAction = ActionSheetToSelectTypeOfSource; これは書き写し間違い?

tomokidayo
質問者

補足

調べてみた所ヘッダーファイルで下記のように設定してありますので、間違いではないと思います。ここだけ抜粋するとわかりにくいですね。申し訳ございません。 typedef enum { ActionSheetToSelectTypeOfSource = 1, ActionSheetToSelectTypeOfMarks } OpenCVTestViewControllerActionSheetAction; @interface OpenCVTestViewController : UIViewController <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate> { IBOutlet UIImageView *imageView; OpenCVTestViewControllerActionSheetAction actionSheetAction; UIProgressHUD *progressHUD; SystemSoundID alertSoundID; }

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

self に view が無いとかいうオチは無いよね?

tomokidayo
質問者

補足

回答ありがとうございます。 ターゲットデバイスがiphoneだけだと動いているのでそんなことはないと思うのですが、ipadだとviewの概念が変わりますか?

関連するQ&A