gpt4 book ai didi

ios - 如何在函数之外获取加速度计数据?

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

我仅在函数内部获取 x、y、z 加速度计数据。

如何在外部获取这些值(我使用的是真实设备,iPhone 4)?

import CoreMotion
//...
var Ax: Double?
var Ay: Double?
var Az: Double?

if motionManager.accelerometerAvailable {
self.motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue()) {
(data, error) in
dispatch_async(dispatch_get_main_queue()) {
var Ax = data.acceleration.x
var Ay = data.acceleration.y
var Az = data.acceleration.z
}
}

} else {
println("Accelerometer is not available")
}

println("\(Ax)") // nil value

这是第二个版本,但结果相同(如果有的话,哪个更好?我需要后台和前台的加速度计数据):

import CoreMotion
//...
var Ax: Double?
var Ay: Double?
var Az: Double?

if motionManager.accelerometerAvailable {
let queue = NSOperationQueue()
motionManager.startAccelerometerUpdatesToQueue(queue, withHandler: {(data: CMAccelerometerData!, error: NSError!) in

var Ax = "\(data.acceleration.x)"
var Ay = "\(data.acceleration.y)"
var Az = "\(data.acceleration.z)"
}
)

} else {
println("Accelerometer is not available")
}

println("\(Ax)") // nil value

最佳答案

Ax 变量为 nil,因为您重新定义了 AxAyAz > 在处理程序中。此外,处理程序在主函数结束后调用,因此在从加速度计接收数据之前调用 print() 语句。您需要重构代码以考虑到这一点,也许需要更新处理程序中的 UI。

关于ios - 如何在函数之外获取加速度计数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31044648/

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