@property (nonomic,retain) CMMotionManager *motionManager; //delcare as a property.
motionManager = [[CMMotionManager alloc] init]; //init it.
motionManager.accelerometerUpdateInterval = 0.2f;
以下所有内容都在一个线程(不是主线程)中执行。
-(void)handle{
[motionManager startAccelerometerUpdates];
while (1) {
CMAcceleration acceleration = motionManager.accelerometerData.acceleration;
NSLog(@"%f %f %f",acceleration.x,acceleration.y,acceleration.z);
sleep(0.5);
}
}
当我在 Xcode -> Instruments 中运行应用程序时,我发现 Living Memory 不断增加,直到应用程序收到内存变暖并被系统杀死。我尝试在 while 块中释放 accelerometerData。但没有效果。motionManager.accelerometer数据发布];
我不想将 startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] 与Handler:^(CMAccelerometerData *accelerometerData,NSError *error) 一起使用,因为我想在后台运行它,而当应用程序暂停时,此块不起作用。
Can anyone help me?
screenshot image:http://img.blog.csdn.net/20130702120140593