我使用的NSTimer在多选测验应用程序中的运行时间为15秒。该应用程序有两种可能的结果。时间可能会降至零,并显示错误的答案视图,在这种情况下,Timer会失效/停止,并且其时间的静态整数将重置为15以用于下一个问题。
然而,另一个可能的结果是在时间向下运行之前选择了答案,在这种情况下,我使用方法viewWillDisappear来触发进一步的操作。我的问题是我无法从此方法重置静态整数,因为它是在上面的方法中声明的。我尝试在.h文件中声明它,但是存在问题,因为整数是静态的。
我想知道是否有一个布尔表达式来评估当前视图是否已经消失,因为这样我可以将所有内容保存在同一个方法中并且能够重置静态整数的时间。
答案 0 :(得分:0)
首先,如果您的计时器变量是该类的本地变量,则不必将其声明为static
。其次,您有两个机会从viewController解决您的问题:viewWillDisappear
和viewDidDisappear
。最后,如果您需要知道视图属性是否已更改,则可以通过KVO方法执行此操作。您将遇到的问题是,如果视图真的消失了,那么视图对象可能会在您引用它时进行烘烤。如果没有更多信息,就无法确定您真正遇到的问题。
此外,一旦您使计时器无效,您将无法再使用它。您必须创建一个新计时器。