Accelerometer一直让我0000

And*_*w_E 1 iphone accelerometer

我得到0 0 0 0 0 0 0 0 0 0 0 0

 - (void)applicationDidFinishLaunching:(UIApplication *)application {resultValues.text = @"";
[[UIAccelerometer sharedAccelerometer] setUpdateInterval: 1.0 / kUpdateFrequency];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
 }
  - (void)accelerometer:(UIAccelerometer*)accelerometer      didAccelerate:(UIAcceleration*)acceleration 
 {
x = acceleration.x;
y = acceleration.y;
z = acceleration.z;
printf("\n%d", x);
printf("\n%d", y);
printf("\n%d", z);
Run Code Online (Sandbox Code Playgroud)

}

Sha*_*rog 5

问题出在你的printf语句上.

UIAcceleration类定义像这样的属性:

@property(nonatomic, readonly) UIAccelerationValue x
Run Code Online (Sandbox Code Playgroud)

UIAccelerationValue typedef就像这样:

typedef double UIAccelerationValue
Run Code Online (Sandbox Code Playgroud)

dprintf的说明符是整数.你想要一个双打.你想要这样的东西:

printf("\n%g %g %g", acceleration.x, acceleration.y, acceleration.z);
Run Code Online (Sandbox Code Playgroud)

(你可以使用f或者e也可以.参见:http://en.wikipedia.org/wiki/Printf#printf_format_placeholders)