如何将此功能转换为swift?我收到一个我不明白的错误。您需要在班上“导入QuartzCore”。
目标C代码
void DrawGridlines(CGContextRef context, CGFloat x, CGFloat width)
{
for (CGFloat y = -48.5; y <= 48.5; y += 16.0)
{
CGContextMoveToPoint(context, x, y);
CGContextAddLineToPoint(context, x + width, y);
}
CGContextSetStrokeColorWithColor(context, graphLineColor());
CGContextStrokePath(context);
}
Swift Code
func DrawGridLines(context:CGContextRef, x:CGFloat, width:CGFloat)
{
for var y = -48.5; y <= 48.5; y += 16.0
{
CGContextMoveToPoint(context, x, y);
CGContextAddLineToPoint(context, x + width, y);
}
//CGContextSetStrokeColorWithColor(context, graphLineColor());
//CGContextStrokePath(context);
}
答案 0 :(得分:3)
Swift对变量类型非常严格。由于您没有给y
类型,Swift推断它是Double
。
变量y
必须是CGFloat
,因为传递给它的函数原型是func CGContextMoveToPoint(c: CGContext?, _ x: CGFloat, _ y: CGFloat)
。您可以在for
语句中声明内联类型:
for var y:CGFloat = -48.5; y <= 48.5; y += 16.0