在我的 -parserDidEndDocument 中调用 NSTimer 的问题

发布于 2024-10-17 11:04:18 字数 302 浏览 0 评论 0原文

我有一个 NSTimer 对象。

timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
[timer fire];

从 viewDidLoad 方法调用计时器时,“timerAction”方法会完美重复,但是当我从 parserDidEndDocument 调用计时器时,“timerAction”方法仅运行一次。这是为什么呢?

I have a NSTimer object.

timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
[timer fire];

The method 'timerAction' repeats perfectly when call the timer from viewDidLoad method, but when I call the timer from parserDidEndDocument, the method 'timerAction' runs only once. Why is this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

向日葵 2024-10-24 11:04:18

您可以尝试在主线程上运行计时器。

试试这个

创建一个包含代码的新方法来启动计时器,例如:-

-(void)createTimer{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
    [timer fire];
}

在您的 parserDidEndDocument 委托中,尝试以下操作:

[self performSelectorOnMainThread:@selector(createTimer) withObject:[nil waitUntilDone:YES]

you can try running the timer on the main thread.

Try this

create a new method that includes the code, to start timer, like :-

-(void)createTimer{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
    [timer fire];
}

In Your parserDidEndDocument delegate, try this:

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