我想要一个数组来存储生成四元和三元曲线所需的数据。为了做到这一点,我也做了以下内容:如何在Swift中将2种类型的CGPath定义存储在数组中
- 定义与性质的CubicCurve结构开始,结束,CP1 & CP2
- 定义的QuadCurve结构与性能的起点,终点和CP
- 定义的枚举被称为Path,具有CubicCurve关联值的cubicCurve的情况和具有QuadCurve关联值的quadCurve的情况。
- 定义类型路径
[Path]()
我定义了一个CubicCurve但无法将其添加到阵列中的一个阵列,该阵列类型的路径:
struct CubicCurve {
var start : CGPoint
var end : CGPoint
var cp1 : CGPoint
var cp2 : CGPoint
}
struct QuadCurve {
var start : CGPoint
var end : CGPoint
var cp : CGPoint
}
enum Path {
case cubicCurve(CubicCurve)
case quadCurve(QuadCurve)
}
let paths = [Path]()
let start = CGPoint(100,100)
let end = CGPoint(500,500)
let cp1 = CGPoint(250,200)
let cp2 = CGPoint(150,300)
let curve = CubicCurve(start: start, end: end, cp1: cp1, cp2: cp2)
paths.append(curve) // Doesn't work - path is of type Path, not CubicCurve
如何真正得到我的价值观到我的数组?
我没有正式的CS培训(好几年前的'A'级CS),并且对Swift的类与结构与枚举的更高级的使用有些朦胧,所以我可能会完全解决这个问题错了。我认为,我做的是比使用[AnyObject]或[任何]。