我在.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有点新意,也许我只是很困惑。但我认为我可以在其他函数中调用自己的函数,假设我已正确定义它们。我做错了什么?
答案 0 :(得分:2)
消息发送的第一部分是接收消息的对象。在这种情况下,邮件发送括号的第一件事是findRate
,因此它认为您要发送邮件[findRate :point1 From:point2]
。相反,接收方应该是self
:
float rate = [self findRate:point1 From:point2];
(顺便说一下,你通常不会把一部分信息的第一个字大写,所以它是findRate:from:
,用小写字母F。)