gpt4 book ai didi

swift - 无法调用非函数类型的值 'DrawCircleSegment'

转载 作者:行者123 更新时间:2023-11-30 10:35:03 26 4
gpt4 key购买 nike

作为一名初级程序员,我尝试了多种解决方案来解决以下问题,但似乎都不起作用。另外,这个论坛提供的答案似乎太复杂,对我来说没有帮助。因此,我们将不胜感激。还试图理解为什么这段代码无法编译,而如果我填写硬编码值,它就会编译。


struct ContentView: View {
static let segmentCount = 2
var DrawArc = DrawCircleSegment()
var body: some View {

VStack {
ForEach(1..<ContentView.segmentCount){ i in
DrawArc(r: CGFloat(50.0 * i), center_x: 100.0, center_y: 100, arc_start: 0, arc_end: 90, arc_width: 30)
}
}
}
}
struct DrawCircleSegment: View {
let r: CGFloat
var center_x: CGFloat
var center_y: CGFloat
var arc_start: Angle
var arc_end: Angle
var arc_width: CGFloat

init() {
r = 0.0
center_x = 0.0
center_y = 0.0
arc_end = Angle(degrees: 0.0)
arc_start = Angle(degrees: 0.0)
arc_width = 0.0
}

var body: some View {
Path { path in

path.addArc(center: CGPoint(x: center_x, y: center_y), radius: r, startAngle: arc_start, endAngle: arc_end, clockwise: false)
path.addLine(to: CGPoint(x: 100.0, y: 200.0))
path.addArc(center: CGPoint(x: 100.0, y:100.0), radius: r * 2, startAngle: Angle(degrees:90.0), endAngle: Angle(degrees:0.0), clockwise: true)
path.addLine(to: CGPoint(x:200, y:100))
}
.fill(Color(red: 79.0 / 255, green: 79.0 / 255, blue: 191.0 / 255))
}
}

最佳答案

var DrawArc = DrawCircleSegment()

此代码创建 DrawCircleSegment 类型的实例/对象,因此 DrawCircleSegment 就是千篇一律的 drawArc (请注意下面有关 Swift 变量命名的内容)就是 cookies 。

因此,调用 DrawArc(r: CGFloat(50.0 * i), center_x: 100.0, center_y: 100, arc_start: 0, arc_end: 90, arc_width: 30) 是不正确的,就像你一样尝试从值而不是类型初始化值。

改变

DrawArc(r: CGFloat(50.0 * i), center_x: 100.0, center_y: 100,   arc_start: 0, arc_end: 90, arc_width: 30)

DrawCircleSegment(r: CGFloat(50.0 * i), center_x: 100.0, center_y: 100,   arc_start: 0, arc_end: 90, arc_width: 30)

如果您想使用别名来给它一个更短的名称,您可以这样做:

typealias DrawArc = DrawCircleSegment

然后你可以DrawArc来初始化它。

旁注:

在 Swift 中,我们使用小驼峰式命名变量名,仅使用大驼峰式命名类型。您应该结账 the Swift style guide

关于swift - 无法调用非函数类型的值 'DrawCircleSegment',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58216020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com