2012-02-25 13 views
2

これは私の最初の投稿です。私はこの問題にまだ答えを見つけることができなかったので、すぐにその点に着手しようとします。私はちょうど出発しています。UIPopoverViewControllerを使用すると、予期される式のエラーが発生する

私はポップオーバーとしてビューを読み込もうとしていますが、私はチュートリアルをオンラインにしていますが、コンパイルするとエラーになります。私は私だけではないことができる非常に小さなミスのように私には思える何のために謝罪

「『contestView』の前に予想される表現」

-(IBAction)contestButton:(id)sender; 
{ 
contestView *screen = [[contestView alloc] init]; 
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:contestView]; 
[pop setDelegate:self]; 
[pop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
[pop setPopoverContentSize:CGSizeMake(615, 650)]; 
[screen release]; 
} 

とエラー:ここでは、問題のコードです蛇のように見えますが、私はあなたの助けに感謝します。

答えて

1

contestViewという名前のクラスがあるようです。 contestViewのインスタンスを作成し、それを変数screenに保存しました。次に、contestView(クラス名)を引数としてセレクタinitWithContentViewController:に渡そうとします。引数として裸のクラス名を渡すことはできません。

はおそらく、あなたはこれを言うためのもの:

ところで
UIPopoverController *pop = [[UIPopoverController alloc] 
    initWithContentViewController:screen]; 

、大文字でクラス名を開始するのiOSプログラミングにおいて一般的です。したがって、クラスの名前をContestViewに変更することを強く検討する必要があります。

また、方法-[UIPopoverController initWithContentViewController:]は、UIViewのインスタンスではなく、UIViewControllerのインスタンスを引数としてとります。 contestViewクラスがUIViewのサブクラスである場合、contestViewの代わりにscreenというように呼び出しを修正すると、別のエラーが発生します。

contestViewのサブクラスがUIViewControllerの場合は、ContestViewControllerに名前を変更する必要があります。

関連する問題