我需要每0.5秒从TCP服务器检索一次值才能在iPhone上显示。我想从分段开关开始/停止扫描。开始段中的IBAction函数似乎没有保留在该函数中。添加while语句也不起作用。我在做什么错了?
这是一次失败尝试的摘要。此代码仅打印0、1、2、3、4,然后消失。如果我在应设置的延迟时间之后中断self.getValues()(也不起作用),它将永远无法到达那里。:
@IBAction func switchChange(_ sender: Any) {
switch statrStopSwitch.selectedSegmentIndex
{
case 0: //Start scanning
if wifiStatus {
getValues()
var pass = 0;
while statrStopSwitch.selectedSegmentIndex == 0{
print (pass)
DispatchQueue.main.asyncAfter(deadline: .now() + 30.0, execute: {
self.getValues()
})
pass += 1
}
}
else{ // Wifi not connected
notConnectedMessage() // Issue alert message
}
case 1: //Stop scanning
ScanStatusLabel.text = "SCAN HALTED"
break
default:
break
}
}