gpt4 book ai didi

objective-c - CMAccelerometerData 类与。弃用的 UIAccelerometer 类

转载 作者:行者123 更新时间:2023-11-29 13:33:05 25 4
gpt4 key购买 nike

基于 this文档中,CMAccelerometerData 类(在 Core Motion 框架中找到)有一个名为 accelerationCMAcceleration 类型的属性,它是包含 3 个值(双 x、双 y、双 z)的结构的 typedef

我是 Objective-C 的新手(我只知道 C++..)所以我的问题是:我如何访问,假设 double y 值保存在该属性中,位于我的代码中的某个点?

我是否首先像这样创建 CMAccelerometerData 类的实例:

CMAccelerometerData *myAccelerometer;

然后访问它的加速属性:

double axisYvalue = [myAccelerometer acceleration]; 

以上显然是错误的,不是吗?我必须特别在加速度中找到 Y,我该怎么做?

double axisYvalue = [myAccelerometer acceleration->y]; // no this is wrong as well..

那我该怎么做呢?

还有最后一个问题 :)

给出我提到的这个特定的类和属性..假设我已经实例化了我的 CMAccelerometer 类..现在每次在我的代码中,我都使用类似的东西

return [myAccelerometer acceleration->y]; // let's say that's the correct version :)

在某些 -(double) 方法中......我会在那个调用的特定时刻获取 Y 轴的值吗?

我问这个是因为在阅读现在已弃用的 UIAccelerometer 类时我感到困惑,在该类中您必须定义间隔并每隔一段时间更新 x、y、z 的值等。现在我可以在调用加速属性时获得 Y 轴上的值,不是这样吗?

呸...抱歉这篇文章太长了! :)

最佳答案

来自 C++,我假设您可以安全地假设您了解指针。第一行:

CMAccelerometerData *myAccelerometer;

...不是创建一个实例,它是声明一个指向实例的指针,它不会指向任何有效的东西。要获得有效实例,您永远不会真正自己创建其中一个。相反,您将使用 CMMotionManager class' accelerometerData 属性获取指向有效对象的指针:

// Sometime earlier...
CMMotionManager* manager = [[CMMotionManager alloc] init];
[manager startAccelerometerUpdates];

// Sometime in the present...
// Get a ref to the most recent accelerometer data.
CMAccelerometerData* data = [manager accelerometerData];

// Access it.
double x = [data acceleration].x;

关于objective-c - CMAccelerometerData 类与。弃用的 UIAccelerometer 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369189/

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