2016-12-29 153 views
-5

我正在获取船体数组中相邻点之间的角度并将其存储在角度数组中。但是对于索引超出范围而获取致命错误。我在这里做错了什么? var angles = [Double]() for index in 1..<hull.count { angles[index-1] = Double(hull[index-1].angleToPoint(comparisonPoint: hull[index]))
}
数组索引超出范围swift 3

+1

嘛'angles'是空的...你可能意味着要追加,而不是标('map'也将是一个不错的选择)。 – Hamish

+0

VAR角度= [双]() 在0 .. HussnainWaris

+0

我得到索引超出范围在这个以及请指导我 – HussnainWaris

回答

0

可以在相同的循环中使用枚举索引和元素:

angles = [] 
for (i, h) in hull.enumerated() { 
    if i == 0 { continue } 
    let angle = Double(hull[i-1].angleToPoint(comparisonPoint: h)) ?? 0 
    angles.append(angle) 
} 
+0

双(h [i-1])给我错误 其实,我的任务是复杂的,因为我必须改变基于另一个数组的数组中的值。这些数组的大小不一样。 – HussnainWaris

+0

对不起,这是h [i-1]的一个明显错误,它应该是[i-1],我更新了答案以使其正常工作。 – bubuxu