gpt4 book ai didi

swift - 如何使循环中的 "for..in"等待函数快速执行?

转载 作者:行者123 更新时间:2023-11-28 15:24:17 27 4
gpt4 key购买 nike

我正在使用从 Spotify SDK 中提取的歌曲在我的应用中创建个人播放列表。 Spotify 歌曲有一个 uri,所以你只能用 Spotify 播放器播放轨道,它接受一个字符串 uri 并播放它,但我有一个完整的轨道 URI 数组。为了解决这个问题,我创建了一个 for..in 循环来播放每一首歌曲,但它遍历整个数组并只播放数组中的最后一首轨道 uri。

我的问题是:有没有办法让 for..in 循环等待每个项目完成播放,然后再遍历数组的其余部分?

array of track uri's

function that plays each individual URI

最佳答案

如果您想按顺序播放歌曲(如播放列表),您需要为它们添加一个连续的 DispatchQueue。串行队列将确保一次只有一个项目在其中执行,因此一次只会执行一个异步请求,这意味着 for 循环的每次迭代都将等待前一个完成。

let queue = DispatchQueue(label: "serial")
for song in playAllSongs{
queue.async{
//put all code here that you had inside the for loop
}
}

关于swift - 如何使循环中的 "for..in"等待函数快速执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45488498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com