我有一个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];
}
我不认为我正在用它做任何奇怪的线程,但它仍然干扰我的计时器。我注意到在触发弹出窗口之前已经调用了计时器,这可能正在做什么吗?
答案 0 :(得分:0)
计时器不应该被弹出窗口杀死,但它确实取决于弹出窗口。如果你有一个不调用主runloop的定制,那可能是你的问题。您希望确保系统有时间,以便它可以调用您的计时器调用。否则,在所有调用中放置断点以使计时器无效,并查看是否有人调用了你。