マップ上にプロットされた位置を、プロットされた位置の間に1秒ずつ入れようとしていますが、動作しません。ここでは、私がこれまで持っているものです。Swift 3で複数のDispatchQueue.main.asyncAfterメソッドを一度に作成
@IBAction func playButtonPressed(_ sender: Any) {
var index = 0.0
var i = 0
var j = 0
while i < sites.count {
while j < sites[i].count {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0*index) {
self.plot(day:i,site:j)
}
j += 1
index += 1
}
j = 0
i += 1
}
}
func plot(day:Int,site:Int) {
for letter in glossary {
let siteToPlot = sites[day][site]
if let location = letter[siteToPlot] {
setUpMap(name: location.name!, lat: location.lat!, long: location.long!)
}
}
}
私はそれを設定している途中、forループ内の各項目はDispatchQueue.main.asyncAfterに呼び出されるメソッドを持っていますが、各項目は、1秒後に発送されます。最初は0秒後、1秒後、2などとなります。
プロット関数の引数が保存されているようには見えませんが、プロット関数が初めて呼び出されたときの日とサイトの値は9です0はループが終了したときの値です。
[パス値閉鎖するには?](http://stackoverflow.com/questions/31565832/pass-value-to-closure) –