【发布时间】:2018-10-28 06:27:14
【问题描述】:
我的代码的简化版是这样的:
var joined = false
for room in rooms {
checkRoom() { // async func
if room.player.count == 1 {
join(room)
joined = true
// break doesnt work here
}
}
if joined {
break;
}
}
我需要退出这个循环,因为它在加入一个房间后仍在检查其他房间。当加入成为真的时,我想停止检查其他房间。但是当然它只在异步调用中变为真的,所以我的方法不起作用。
join 为真时如何退出这个循环?
【问题讨论】:
-
首先,您是要并行还是串行检查房间。如果您可以连续进行,那么它非常简单;不要使用
for循环,只需检查闭包中else语句中的下一个房间 -
@Paulw11 哦...似乎我通过使用 for 循环使它变得更难了。谢谢!
标签: ios swift xcode for-loop asynchronous