我正在尝试将加速度计与Monotouch
一起使用,但MotionManager
出现问题。
更新停止在2-3秒后发送。
这是代码。 (所有内容都是在我的主UIView
的构造函数中创建的。)
CMMotionManager motionManager = new CMMotionManager();
motionManager.AccelerometerUpdateInterval = 0.5;
motionManager
.StartAccelerometerUpdates(NSOperationQueue.CurrentQueue,
delegate(CMAccelerometerData data, NSError error)
{
myLabel.Text = data.Acceleration.X.ToString("0.0000");
});
使用UIAccelerometer
,它正在运作:
UIAccelerometer acc = UIAccelerometer.SharedAccelerometer;
acc.UpdateInterval = 0.5;
acc.Acceleration += delegate(object sender, UIAccelerometerEventArgs e)
{
myLabel.Text = e.Acceleration.X.ToString("0.0000");
};
有什么想法吗?
答案 0 :(得分:1)
没有足够的源代码来查看您是否保留对CMMotionManager
实例的引用。否则GC可以处理它,这将停止任何更新。
相比之下,当您创建自己的UIAccelerometer
(可能是)时,您正在使用共享 CMMotionManager
(这将不会是GC)