2011-08-05 63 views
0

我的程序確實從UISlider獲得了valuse,並通過協議將值發送給它的父類。如何通過委託傳遞uislider值?

child.h

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

,我把它在child.m

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

但它返回錯誤說 「不兼容類型值a的參數1:VA:」 做我有在傳遞值之前解析該值?或者我只是犯了錯誤的參數?

回答

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

這種方法實際上應該是

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

我改變NSInteger的*到GCFloat有兩個原因。

UISlider的value屬性是一個CGFloat,所以轉換爲NSInteger會導致精度丟失。如果你不介意,你可以改變它,但我明確地施放它,所以更清楚這就是你想要的。

我刪除了*,因爲你傳遞的是一個值,而不是一個引用。

+0

謝謝!它的工作原理:-) – user842589

+0

'UISlider'實際上需要一個'float',而不是'CGFloat'作爲它的值屬性。 – Matoe