所以我的问题看起来像这样:我正在开发一个应用程序来跟踪一些数据记录器。我是一名电子工程师,所以我很快乐。
在一个tableview中,我列出了所有连接的设备,当我点击一个单元格时,它会带我到另一个带有相应传感器配置数据的tableview。
在这里,我有一个按钮单元来捕获数据。一旦我点击它,它就会启动捕获序列并设置一个计时器,
timer = Timer.scheduledTimer(timeInterval: 30, target: self, selector:#selector(ViewController.timerHandler), repeats: false)
30秒后,调用处理程序并同步并从传感器检索数据。
直到这里一切都很完美。传感器的所有命令都将mac地址作为参数。
当我尝试同时从两个设备进行测量时,会出现问题。
我从第一个设备进入带有mac地址的视图控制器并启动它的捕获,然后我再次使用第二个设备的mac地址进入视图控制器,然后按下捕获,并覆盖计时器并启动它的捕获,但第一个设备丢失。
我认为我必须使用userInfo作为定时器,其中userinfo将是macaddress,但我不知道如何实例化定时器而不是每次都覆盖它。
我很感激任何帮助!
------编辑-------
我添加了一些定时器所在的代码:
func tableView(_ tableView: UITableView, didSelectRowAtindexPath:IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
switch (indexPath.section) {
case 0:
switch (indexPath.row) {
case 0: self.newName()
case 3: self.performSegue(withIdentifier: "sessionSegue", sender: self)
default: break
}
case 1:
switch (indexPath.row) {
case 0:
startSampling(self.macAddress)
timer = Timer.scheduledTimer(timeInterval: 30, target:self, selector: #selector(wvfDashboardVC.timerhandler), repeats: false)
default: break
}
default: break
}
}
处理程序:
func timerhandler(){
stopSampling(self.macaddress)
startSync(self.macaddress)
}