2014-03-13 59 views
0

我在圖層委託中有以下代碼。它只是繪製一個藍色的圓圈。它適用於32位iOS設備,但在64位iOS設備上沒有任何提示。爲什麼?爲什麼CGContextAddArc在32位而不是64位設備上工作?

-(void) drawLayer:(CALayer *)layer inContext:(CGContextRef)context 
{ 
    CGContextAddArc(context, 100., 100., 10., -M_PI, M_PI, YES); 
    CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor); 
    CGContextFillPath(context); 
} 

回答

5

算出來了。將M_PI強制轉換爲浮點解決了問題。這必須與CGContextAddArc採用CGFloat參數有關,而CGFloat在32位與64位平臺上的定義不同。在32位上,它是一個浮點數,在64位上是雙精度浮點數。

CGContextAddArc(context, 100., 100., 10., -(float)M_PI, (float)M_PI, YES); 
+2

而*那*在32位和64位上是不同的?! –

+0

更新了答案。真正的問題不是順時針的說法。這是一個數據類型問題。 –

+0

我不能相信這實際上也適用於我。 – olynoise

相關問題