gpt4 book ai didi

ios - 如何检查 NSTimer 是否已经失效

转载 作者:技术小花猫 更新时间:2023-10-29 10:29:44 24 4
gpt4 key购买 nike

我有一个 NSTimer 对象,如果用户点击按钮或退出 View ,我需要使它失效。

所以我有:

[myNSTimer invalidate];

在我的按钮处理程序内部和 viewWillDisappear 内部。如果用户点击一个按钮然后存在一个 View ,应用程序将抛出异​​常,因为 myNSTimer 已经失效。我需要在 viewWillDisappear 方法中做的是检查 myNSTimer 是否已失效。我该怎么做?

我试过:

if(myNSTimer != nil)
[myNSTimer invalidate];

但这没有用。

最佳答案

一旦您使计时器无效,只需对其调用 release(假设您保留了您持有的引用),然后将您的引用归零。这样,当您退出 View 时,第二次尝试使计时器无效时,只会在 nil 上调用该方法,而不会执行任何操作。

或者,您可以使用 -[NSTimer isValid] 在无效之前检查它是否有效,但是在第一次无效之后确实没有理由保留您的引用。另外,如果你真正的问题是你没有保留你的引用,所以第一个 -invalidate 实际上给你留下了一个指向已释放对象的引用,然后调用 -isValid 无论如何也无济于事。

关于ios - 如何检查 NSTimer 是否已经失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/368253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com