2012-12-28 25 views
-2

嗨,我需要製作2D拱門。當我在這裏得到一個問題如何在我的iOS應用程序中使用「DEGREE」

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:

我知道我還沒有包括一些頭文件的錯誤,我想知道哪一個是要包括哪些內容?

回答

10

DEGREE是宏,而不是一個方法!

正如你可以很容易地猜出它的名字。 命名約定來發揮作用

你必須定義它可能是因爲:

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

#define DEGREE(angle) ((angle)/180.0 * M_PI) 
+0

我更喜歡RADIANS_FROM_DEGREES() – Jonny

+0

@Jonny:看起來不錯。 –

7

它應該是自定義宏,你也可以聲明自己並把它交給你的名稱。嘗試以下方法,將其放在標題或實現文件中的任何位置。

#define DEGREE(radians) ((radians) * (180.0/M_PI)) 
0

希望它爲你工作...

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

@Matthias鮑赫:感謝您的信息。

+1

不需要重新定義M_PI,但不太準確。 M_PI已經在math.h中定義了。 –

相關問題