2011-11-30 6 views
1

次のコードを使用して、WebViewを使用してPdfのページを移動しようとしています。CGPointMakeにインクリメントされた値を割り当てる問題

float Y = pdfNavigateController.webView.center.y + gY; 
[pdfNavigateController.webView.scrollView setContentOffset:CGPointMake(0,Y)]; 

値gYも浮動小数点であり、ユーザーが次のページを選択するとインクリメントされます。コードは現在、 '無効なオペランドをバイナリ式(' CGFloat '(aka' float ')と' float * ')に投げています。私は、値がポインタであるので、オペランドが無効であると推測していますが、このエラーを出さずにインクリメントされた値を渡す方法はわかりません。

+0

gYがどこに由来しているのか、どのようにインスタンス化されているのかを正確に表示できますか? float *(floatポインタ)をfloat(CGFloat)に追加しようとしているようなエラーが表示されるようです。この種のことは、gYが実際にfloat *として宣言されていることを示唆しています。 –

+0

コードにgYとは何ですか?それはどこに宣言されていますか? – RaffAl

+0

gYは宣言の下のページの上部にあるstatic float * gY = 0として宣言されます。上記のコードに達する前にインクリメントされます。考え方は、上記のコードは、次のページに進むために「次へ」ボタンが押されるたびに実行されるということです。変数としてgYを受け入れないので、問題を引き起こしているのは上のコードです。 – user616076

答えて

0

Gyは(フロート)がポインタである場合は、その値にアクセスするためには、それを間接参照する必要があります。

float Y = pdfNavigateController.webView.center.y + *gY; 

EDIT

あなたが持っていることを確認してください有効なポインタ(つまり、gYは実際の浮動小数点を指します)。 初期化されていないポインタの場合は動作しません。

あなたはどうすればgYを教えてください。

EDIT 2私は、あなたはGYのように宣言されていることを言った見てきました

:NULLポインタをだ

static float *gY = 0; 


そして、NULLポインタを逆参照することはできません。

インクリメントすると、値ではなくポインタ(メモリアドレス)がインクリメントされます。 あなたのポインタは実際にゴミを指しています。

なぜポインタを使用しますか? あなたは使用する必要があります。

static float gY = 0; 
+0

上記のように、例外ハンドラをラップする場合でも、この行にコードがハングします。 – user616076

+0

編集を参照してください... – Macmade

+0

編集2 ...:を参照してください) – Macmade

1

gY場合フロートへのポインタが使用されて*gY

float Y = pdfNavigateController.webView.center.y + *gY; 

エラーrmessage:最初のブレークをデバッグするためfloat *

('CGFloat' (aka 'float') and 'float *')CGFloatfloatを期待したがフロートポインタを得たことを言っています操作は、に指し示された値にアクセスすることになります。

float gYValue = *gY; 
float Y = pdfNavigateController.webView.center.y + gYValue; 
+0

上記のコードは大丈夫ですが、floatの行でハングします。gYValue = * gY; – user616076

0

あなたのコードの非常に少量を掲載しましたので、トラブルシューティングするのは難しいです。しかし、私は考えがあります。 gXがメソッドの引数である場合、解は次のようになります。

この問題を解決するには、クラスの.hファイルにメソッドの宣言を追加します。これが助けてくれることを願っています。

関連する問題