2014-02-05 32 views
0

另一個函數的內部用戶定義的函數I在.m文件中定義下面的函數:使用與目標C

- (float) findRate:(CGPoint *) point From:(CGPoint *) spriteloc { 

int xdist; 
if (point > spriteloc) { 
    xdist = point->x - spriteloc->x; 
} 
if (point < spriteloc) { 
    xdist = spriteloc->x - point->x; 
} 

// v=d/t t = d*v 
float travelTime = xdist * 2; // 2 what? idk... 
return travelTime; 

} 

我有:

- (float) findRate:(CGPoint *) point From:(CGPoint *) spriteloc; 

在.H文件。

我去的init(.m文件)函數我試圖調用

float rate = [findRate:point1 From:point2]; 

它會返回錯誤:使用未申報IDENTIFER的 'findRate'

我已在findRateFrom功能定義在init函數之前。

我對Objective-C有點新,也許我只是很困惑。但我認爲我可以在其他函數中調用我自己的函數,假設我已經正確定義了它們。我究竟做錯了什麼?

回答

2

消息發送的第一部分是接收消息的對象。在這種情況下,消息發送方括號中的第一項是findRate,所以它認爲您想發送消息[findRate :point1 From:point2]。相反,接收器應該是self

float rate = [self findRate:point1 From:point2]; 

(順便說一句,你通常不會利用一個消息的一部分的第一個字,所以這將是findRate:from:,以小寫F.)

+0

你錯過了你把自己放在括號內的那個部分 –

+0

你去了XD –