当我使用popOver时,NSTimer似乎无效

时间:2013-12-30 18:27:47

标签: ios objective-c nstimer

我有一个NSTimer随着时间的推移显示文本。如果popOver同时出现,计时器似乎就会死掉。它调用的方法停止打印日志语句,我的代码肯定永远不会使它失效。

这是预期的行为吗?我在运行计时器时是否应该永远不会有popOver?

编辑:通过“同时”我的意思是,在NSTimer被我无效(它仍然显示文本)之前,用户触发popOver,这会阻止NSTimer继续。我有一些方法可以使NSTimer无法打印日志语句,并且无法使用该方法使其无效。当popOver发生时,日志语句不会显示。

以下是我如何调用popOver:

if ([self.popOverController isPopoverVisible]) {
    [self.popOverController dismissPopoverAnimated:YES];
} else {
    SubMenuViewController *popup = [[SubMenuViewController alloc] initWithStorySections:tmp_menu];

    self.popOverController = [[UIPopoverController alloc] initWithContentViewController:popup];
    popup.delegate = self;
    [self.popOverController presentPopoverFromRect:self.textView.frame inView: self.backgroundView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

我不认为我正在用它做任何奇怪的线程,但它仍然干扰我的计时器。我注意到在触发弹出窗口之前已经调用了计时器,这可能正在做什么吗?

1 个答案:

答案 0 :(得分:0)

计时器不应该被弹出窗口杀死,但它确实取决于弹出窗口。如果你有一个不调用主runloop的定制,那可能是你的问题。您希望确保系统有时间,以便它可以调用您的计时器调用。否则,在所有调用中放置断点以使计时器无效,并查看是否有人调用了你。