使用Objective-C在另一个函数内部使用用户定义的函数

时间:2014-02-05 21:22:38

标签: ios objective-c cocos2d-iphone

我在.m文件中定义了以下函数:

- (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;
<。>文件中的

我转到我尝试调用的init(.m文件)函数

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

它返回错误:使用未声明的标识'findRate'

我在init函数之前定义了findRateFrom函数。

我对Objective-C有点新意,也许我只是很困惑。但我认为我可以在其他函数中调用自己的函数,假设我已正确定义它们。我做错了什么?

1 个答案:

答案 0 :(得分:2)

消息发送的第一部分是接收消息的对象。在这种情况下,邮件发送括号的第一件事是findRate,因此它认为您要发送邮件[findRate :point1 From:point2]。相反,接收方应该是self

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

(顺便说一下,你通常不会把一部分信息的第一个字大写,所以它是findRate:from:,用小写字母F。)