在SWIFT 3

时间:2018-02-22 20:34:19

标签: ios swift3 nstimer

所以我的问题看起来像这样:我正在开发一个应用程序来跟踪一些数据记录器。我是一名电子工程师,所以我很快乐。

在一个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)
   }

0 个答案:

没有答案