如何将此函数转换为 swift?我收到一个我不明白的错误。你需要在你的类里面“导入 QuartzCore”。
objective-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);
}
快速代码
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);
}
最佳答案
Swift 对变量类型非常严格。由于您没有给 y
一个类型,Swift 推断它是一个 Double
。
变量 y
需要是一个 CGFloat
因为它传递给的函数原型(prototype)是 func CGContextMoveToPoint(c: CGContext?, _ x: CGFloat, _ y: CGFloat)
。您可以在 for
语句中内联声明类型:
for var y:CGFloat = -48.5; y <= 48.5; y += 16.0
关于swift - 无法将 Double 转换为预期的参数类型 CGFloat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059005/