当前位置: 首页 > 面试题库 >

如何在计时器选择器上传递参数

龚志文
2023-03-14
问题内容

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let mostRecentLocation = locations.last else {
return
}

        print(mostRecentLocation.coordinate.latitude)
        print(mostRecentLocation.coordinate.longitude)        
        Timer.scheduledTimer(timeInterval: 60.0, target: self, selector: #selector(StartTestVC.sendDataToServer), userInfo: nil, repeats: true)
    }

    func sendDataToServer (latitude: Double, longitude: Double) {
        SFUserManager.shared.uploadPULocation(latitude, longitude:longitude)
    }

我想每1分钟将数据发送到服务器。我正在使用Timer.scheduledTimer和设置选择器。但是,如何将lat / lng参数发送给函数?


问题答案:

为了与之一起发送数据,Timer可以使用userInfo参数传递数据。

这是您可以调用选择器方法并可以将位置坐标传递给它的示例。

Timer.scheduledTimer(timeInterval: 0.5, target: self, selector:#selector(iGotCall(sender:)), userInfo: ["Name": "i am iOS guy"], repeats:true)

要进行处理,userInfo您需要按照以下说明进行操作。

func iGotCall(sender: Timer) {
        print((sender.userInfo)!)
    }

对于您的情况,请确保didUpdateLocations经常打电话给您。



 类似资料:
  • 问题内容: 我正在以编程方式将UITapGestureRecognizer添加到我的视图之一: 我遇到的第一个问题是“’#selector’的参数未引用’@Objc’方法,属性或初始化程序。 很酷,所以我在handleTap签名中添加了@objc: 现在,我收到错误消息“无法将方法标记为@objc,因为无法在Objective-C中表示参数的类型。 它只是建筑物地图的图像,其中一些图钉图像指示了兴

  • 问题内容: 我有两个标签,Label1和Label2。我想通过创建两个标签的UITTapRecognizer创建UITTapRecognizer,以使用传递参数的选择器来调用同一个函数,从而使打印出哪个标签的功能单一。下面是完成此操作的漫长方法,虽然比较麻烦,但可以正常工作。如果我知道如何将参数(Int)传递给选择器,那将是一个更干净的选择。 有没有办法修改选择器方法,以便我可以做类似的事情 问题

  • 问题内容: 我在tableviewcontroller中有一个,当切换开关时,我希望它更改在单元格相关的视图控制器内部创建的数组中的布尔变量的值。有点像IOS上的Stock Alarm App,其中每个单元都有一个,并且拨动该开关将关闭每个单独的警报。因此,使用,其选择器代码位于方法内部 我希望它做到这一点 我还没有为那部分编写代码,但是我的问题是,如何让switchTriggered函数看到该值

  • 希望能澄清一下我什么时候应该使用和。这可能不是节奏问题,但也许我错过了一些关于Golang的知识。 对于我认为基本思想是等待通道的下一个输出。不完全确定什么是可以。 例如,在cadence示例中,< code>local_activity链接并粘贴在下面: 我们不使用任何 但是,在这里的例子中,它也使用信号通道:根据外部输入改变优步节奏睡眠时间 我还会将代码粘贴到这里 你可以看到有,我不完全确定它

  • 问题内容: 我有一个以结尾的Dockerfile 该可以采取一些不同的论点,我也需要暴露口容器,所以如果我运行手动我做这样的事情: 如何在Jenkinsfile中执行此操作?我的测试将与此容器通信,因此它需要在运行测试之前运行。我在测试运行之前先让它运行,但我看不到如何指定 问题答案: 您可以使用withRun的第二个参数

  • 问题内容: 例如,以下代码用于单个选择值 问题答案: 我会用booleanParam的。然后,用户可以勾选所有必需的选项。