2016-12-29 106 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