- 締切済み
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を入れるなどの対策はしてみましたがエラーはなくなりません。 解決策がわかる方いらっしゃいましたら、お教え願います。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- SAYKA
- ベストアンサー率34% (944/2776)
>作り方があってるかわかりませんが、iphoneアプリプロジェクトを新規で作成して universal は window-base で。
- SAYKA
- ベストアンサー率34% (944/2776)
>ターゲットデバイスがiphoneだけだと動いている ははぁ なるほどね ターゲットを変更してるだけで iPadで起動した時の処理が書いてないんじゃない? 何言ってるか判らなかったら なんでも良いから iPhone/iPad universal でプロジェクトを1つ新規で作ってごらん。 それを見ながら「え こんなことやってない」っていうのを自分のに取り込んだら良いよ。 やれば多分判るんじゃないかな。「あ、確かにこれはiPadでview無いって言われるよ」って。
補足
回答ありがとうございます! 作り方があってるかわかりませんが、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)
引用コード中3行目: actionSheetAction = ActionSheetToSelectTypeOfSource; これは書き写し間違い?
補足
調べてみた所ヘッダーファイルで下記のように設定してありますので、間違いではないと思います。ここだけ抜粋するとわかりにくいですね。申し訳ございません。 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)
self に view が無いとかいうオチは無いよね?
補足
回答ありがとうございます。 ターゲットデバイスがiphoneだけだと動いているのでそんなことはないと思うのですが、ipadだとviewの概念が変わりますか?
補足
window-baseですね!作って確かめてみます。 またご報告します!