gpt4 book ai didi

ios - 更新由定时器驱动的函数中的变量

转载 作者:行者123 更新时间:2023-11-28 14:25:54 27 4
gpt4 key购买 nike

我有以下功能,当切换按钮以激活它时可以正常工作。我想添加一个变量,为每条消息提供从 1 开始的当前消息编号。我尝试了不同的设置/更新值的方法,但都没有帮助更新。

我是 Swift/iOS 开发的新手,所以我确信我缺少某些东西。我所知道的是,该消息会重复打印到控制台,直到按钮关闭,Timer 才能使其持续运行。

@IBOutlet weak var stateLabel: UILabel!
//Starts / Stops recording of sensor data via a switch
@IBAction func stateChange(_ sender: UISwitch) {
if sender.isOn == true {
startSensorData()
stateLabel.text = "Stop"
} else {
stopSensorData()
stateLabel.text = "Start"
}
}


func startSensorData() {
print("Start Capturing Sensor Data")
// Making sure sensors are available
if self.motionManager.isAccelerometerAvailable, self.motionManager.isGyroAvailable {

// Setting the frequency required for data session
self.motionManager.accelerometerUpdateInterval = 1.0 / 3.0
self.motionManager.gyroUpdateInterval = 1.0 / 3.0

// Start sensor updates
self.motionManager.startAccelerometerUpdates()
self.motionManager.startGyroUpdates()

// Configure a timer to fetch the data.
self.motionUpdateTimer = Timer.scheduledTimer(withTimeInterval: 1.0/3.0, repeats: true, block: { (timer1) in
// Get the motion data.
var loggingSample = 1
if let accelData = self.motionManager.accelerometerData, let gyroData = self.motionManager.gyroData {

let accelX = accelData.acceleration.x
let accelY = accelData.acceleration.y
let accelZ = accelData.acceleration.z

let gyroX = gyroData.rotationRate.x
let gyroY = gyroData.rotationRate.y
let gyroZ = gyroData.rotationRate.z

let message = "\(Date().timeIntervalSince1970),\(self.device_id),\(loggingSample),\(accelX),\(accelY),\(accelZ),\(gyroX),\(gyroY),\(gyroZ),Processing"
print(message)
loggingSample += 1
}
}
)}
}

最佳答案

您不断得到 1 的值对于 loggingSample因为您使用的是创建为 1 的局部变量每次。

您需要做的就是移动 loggingSample 的声明在函数之外,因此它是一个类属性。

移动线:

var loggingSample = 1

在功能区之外,因此它靠近您的商店和其他属性(property)。

关于ios - 更新由定时器驱动的函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51572785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com