-2

嗨,我需要制作一个 2D 拱门。我在这里遇到问题的地方

arc.path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(50, 100)
                                                  radius:80.0
                                                  startAngle:DEGREE(65)
                                                  endAngle:DEGREE(90)
                                                  clockwise:NO].CGPath;

我收到一个错误

Undefined symbols for architecture i386: "_DEGREE", referenced from:

我知道我没有包含一些头文件,我可以知道要包含哪个头文件吗?

4

3 回答 3

10

DEGREE是宏,不是方法!!!

你可以很容易地通过它的名字猜到。命名约定开始发挥作用

您必须将其定义为:

#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)

或者

#define DEGREE(angle) ((angle) / 180.0 * M_PI)
于 2012-12-28T12:01:23.713 回答
7

它应该是自定义宏,您也可以声明自己并将其命名为您的名字。尝试如下,将其放在头文件或实现文件中的任何位置。

#define DEGREE(radians) ((radians) * (180.0 / M_PI))
于 2012-12-28T12:02:23.513 回答
0

希望对你有帮助...

(CGFloat) radians:(CGFloat) degrees
{
    CGFloat angle = degrees * M_PI / 180.0;
    return angle;
}

@Matthias Bauch:感谢您提供的信息。

于 2012-12-28T12:03:23.610 回答