[英]Create Array of CGPoints in Swift
我有循环遍历双精度数组并从双精度和数组索引创建 CGPoint 的代码。
但是,我不知道如何将生成的 CGPoints 放入数组中。 这是我的代码:
var points = [CGPoint].self//The compiler is okay with this but I don't know what self really means. Without self it giver error 'expected member name or constructor call after type name'
var i:Int = 0
while i < closingprices.count {
let mypoint = CGPoint(x: Double(i+1),y: closingprices[i])
// points += mypoint //This throws error:Binary operator '+=' cannot be applied to operands of type '[CGPoint].Type' and 'CG
i+=1
}
如何将 CGPoints 放入数组中?
有一些问题和不良做法
您正在声明类型[CGPoint].self
,一个空数组是
var points = [CGPoint]()
Swift 中更好的方法是
for
循环
for i in 0..<closingprices.count { points.append(CGPoint(x: Double(i+1),y: closingprices[i])) }
或(首选)
快速枚举
for (index, price) in closingprices.enumerated() {
points.append(CGPoint(x: Double(index+1),y: price))
}
请阅读 Swift 语言指南,值得。
更好的方法是在此处使用Enumerated
和map
。
let points = closingprices.enumerated().map { CGPoint(x: Double($0 + 1), y: $1) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.