如何在iPhone上发布共享加速器实例?

发布于 2024-07-17 02:44:54 字数 447 浏览 9 评论 0原文

我创建了一个加速计变量:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

属性 2024-07-24 02:44:54

您不会释放共享加速度计 - 您从未保留它(也不应该) - 它是一个单例。

加速度计引用了您的对象。 要释放它,只需将其委托属性设置为 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文