如何在iPhone上发布共享加速器实例?
我创建了一个加速计变量:
UIAccelerometer *objAccelerometer;
我将其与共享加速计实例关联:
objAccelerometer = [UIAccelerometer sharedAccelerometer];
objAccelerometer.delegate = self;
当我释放此视图(以加载不同的视图)时,加速计实例会导致程序终止。 (如果我将其注释掉,我可以毫无问题地在视图之间切换)。
我在使用 NSTimer 时遇到了类似的问题,但是一旦我调用:(
[myTimer invalidate];
在释放和切换视图之前)一切工作正常。
我应该如何正确释放委托或取消分配或释放加速度计?
I have created an accelerometer variable:
UIAccelerometer *objAccelerometer;
that I am associating to the sharedAccelerometer instance:
objAccelerometer = [UIAccelerometer sharedAccelerometer];
objAccelerometer.delegate = self;
When I release this view (to load a different view), the accelerometer instance causes the program to die. (If I have it commented out, I can switch between views without a problem).
I had a similar problem with an NSTimer, but once I called:
[myTimer invalidate];
(prior to releasing and switching the views) everything worked fine.
How should I properly release the delegate or deallocate or release the accelerometer?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不会释放共享加速度计 - 您从未保留它(也不应该) - 它是一个单例。
加速度计引用了您的对象。 要释放它,只需将其委托属性设置为 nil (因为它是一个属性,它将释放对您的对象的引用)。
You don't release the shared accelerometer - you never retained it (and shouldn't) - it's a singleton.
The accelerometer has a reference to your object. For it to release it just set it's delegate property to nil (because it's a property it will release its reference to your object).