我想要一個數組來存儲生成四元和三元曲線所需的數據。爲了做到這一點,我也做了以下內容:如何在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]或[任何]。