2015-08-14 24 views
-3

在下面無法在CGFloat的參數傳遞的目標C

- (void) scaleWithXFactor: (CGFloat) x andY: (CGFloat) y { 
    [self.drawing passWithX: x anyY: y]; 
} 

代碼中,我得到以下錯誤

Sending CGFloat to parameter of type CGFloat* 

我怎麼給CGFloat的傳遞給下一個方法?

回答

4

CGFloat是一個值類型。 CGFloat *是對CGFloat值的引用(指針)。

你需要得到你的float的引用。使用&符號運算符很容易。

&x 

給你一個x的參考。所以,你的具體情況:

- (void) scaleWithXFactor: (CGFloat) x andY: (CGFloat) y { 
    [self.drawing passWithX: &x anyY: &y]; 
} 

正如下面的評論中提到,如果你沒有一個很好的理由passWithX採取引用(指針)作爲其參數rmaddy,那就不用它帶到引用。將其參數從(CGFloat *)更改爲(CGFloat)。

+0

是的,我也這麼想。儘管我稱之爲「scaleWithXFactor」,但我並沒有發送&var。我只是var –

+0

這是因爲你的scaleWithXFactor函數的參數是(CGFloat),而不是(CGFloat *)。 – Aurast

+1

@PrakashRaman對於未來的讀者,如果您將「passWithX:anyY」的聲明添加到問題中,將會有所幫助。 – user3386109

0

請將頭文件#import <UIKit/UIKit.h>添加到您的.m文件中。