-2
在我迅速的遊戲我遍歷2個陣列運行每一幀(spritekit)像這樣Swift超出數組循環/捕獲異常?
override func update(currentTime: CFTimeInterval) {
for (i, value) in enumerate(presents) {
for (ii, pvalue) in enumerate(portals) {
if(blah == true) {
presants.removeAtIndex(i)
}
//There is also some code that waits 1 second then runs
portals.removeAtIndex(ii)
}
}
}
正如你可以在內環看到我有時刪除。但是,這有時會崩潰的錯誤,致命錯誤:數組索引超出範圍,我不知道這是如何發生的。我的2理論是1.因爲它運行每一幀,並有一個延遲它可能已經在下一個循環時,它被刪除或2.因爲循環迭代我從循環中刪除的數組可能不會重置後,它被刪除。我可以使用try catch(純粹的swift no Obj-C),但所有的例子都是爲了拋出我想忽略它們的錯誤。
所以我的問題是:我可以重置循環,或者我可以實現純粹的快速嘗試趕上?
[Swift中的try-catch異常]的可能重複(http://stackoverflow.com/questions/24023112/try-catch-exceptions-in-swift) – holex 2014-11-22 10:18:47