2011-08-05 4 views
0

私のプログラムは、UISliderからvaluseを取得し、その値をプロトコルによってスーパークラスに送ります。デリゲートを通じてuisliderの値を渡す方法は?

child.h

-(void) valueA:(NSInteger *)vA valueB:(NSInteger *)vB; 

と私はchild.m

[self.delegate valueA:sliderA.value valueB:sliderB.value]; 

でそれを呼び出すが、それはエラーを返し氏は述べています "valueAの引数1のための互換性のない型:バージニア州:" は私が持っています私は値を渡す前に値を解析する?または私はちょうど間違ったパラメータですか?この方法は、実際に

-(void) valueA:(CGFloat)vA valueB:(CGFloat)vB; 

でなければなりません

答えて

1
-(void) valueA:(NSInteger *)vA valueB:(NSInteger *)vB; 

私は2つの理由からGCFloatにNSInteger *を変更しました。

UISliderのvalueプロパティはCGFloatであるため、NSIntegerに変換すると精度が低下します。あなたが気にしないなら、あなたはそれを元に戻すことができますが、私はそれを明示的にキャストしようとしています。

*を削除しました。これは、参照ではなく値を渡すためです。

+0

ありがとうございます!それは動作します:-) – user842589

+0

'UISlider'は実際にはvalueプロパティとして' CGFloat'ではなく 'float'をとります。 – Matoe

関連する問題