线程 NSTimer

2023-12-05

我知道有关此主题的许多问题,因为我自己之前也问过一个问题,但是,我的问题现在似乎与线程部分更相关。我有以下2种方法。

-(void) restartTimer {

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1. 
                                             target:self
                                           selector:@selector(dim) 
                                           userInfo:nil 
                                            repeats:YES];
    time = 31;
    NSLog(@"calling restart timer");
    [self performSelectorOnMainThread:@selector(timerImageUpdate) withObject:nil waitUntilDone:NO];

    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];
    [[NSRunLoop currentRunLoop] run];

    [pool drain];

}

-(void) resumeTimer {

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1. 
                                             target:self
                                           selector:@selector(dim) 
                                           userInfo:nil 
                                            repeats:YES];
    NSLog(@"calling resume timer");

    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];
    [[NSRunLoop currentRunLoop] run];

    [pool drain];

}

游戏开始时会调用 restartTimer 函数。这工作得很好,定时器很好地触发了暗淡选择器。当用户快速连续单击我的跳过按钮时,就会出现问题。 [skip] 更新 MKMapView 并在委托方法 mapdidfinishloading 中调用以下命令: [NSThread detachNewThreadSelector:@selector(restartTimer) toTarget:self withObject:nil];
当发生这种情况时,似乎会创建多个计时器,因此我的昏暗函数被调用得太频繁,从而使单个计时器看起来运行得非常快?使用辅助线程启动和重新启动计时器的最佳方法是什么?请注意,此问题似乎仅在重复快速按下“跳过”按钮时才会发生,而如果只是偶尔按下则可以正常工作?

有人有主意吗?非常感谢

Jules


您可以使用布尔值来了解计时器是否正在运行。当您启动计时器时,您将其设置为 true,当您停止计时器时,您将其设置为 false。当恢复定时器函数被调用时,你检查这个变量,如果它是真的,你就不会启动一个新的定时器。

另一种解决方案是限制用户与按钮的交互。如果按下该按钮,您将使其暂时处于非活动状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线程 NSTimer 的相关文章

  • UIView 子类中使用的 CAShapeLayer 不起作用

    我尝试了几个小时 用 CAShapeLayer 在 UIView 周围获得虚线边框 但我没有显示它 ScaleOverlay h import
  • iPhone 中的 UIGlassButton

    有人使用 Glass Button 提交过申请吗 获得批准了吗 我正在尝试使用彩色圆形按钮 但不想使用这些技巧 如何在 iPhone 上设置按钮背景颜色 https stackoverflow com questions 372731 ho
  • iOS:保持应用程序在后台运行

    如何让我的应用程序在后台运行 我需要越狱我的 iPhone 才能执行此操作吗 我只需要这个应用程序每隔设定的时间间隔从互联网上检查一些内容 并在需要时发出通知 以供我自己使用 是的 不需要越狱 查看本文档的 实现长时间运行的后台任务 部分A
  • 使用 NSJSONSerialization 解析 JSON

    对此进行了太多讨论 但我不知道如何解决我的问题 这是我从 WorldWeatherOnline 获取的 JSON 数据 JSON 有效 但我不知道如何解析它 这是我的代码 后面是 JSON 请帮忙 NSError errorInfo NSD
  • iPhone - ShareKit 、 SHKm 给出“找不到文件”的编译器错误

    我在使用 ShareKit Integrated 编译我的 iphone 项目时遇到了这个问题 我正在研究这个问题 到目前为止一切都工作正常 突然现在它给了我错误 在 SHK m 文件中 import include objc objc c
  • 删除 NSMutablearray 中的最后一个对象[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 为什么要删
  • 使用 Mono Touch 的 Iphone 键盘顶部带有完成按钮的工具栏?

    我需要使用 UIkeyboard type 数字键盘在工具栏上添加完成按钮 以便在单击完成按钮时退出键盘 我使用了输入附件视图 但它也添加到普通键盘 我需要在我有数字键盘的地方添加这个 例如 我有一个文本字段 它只需要我需要的数字 除了我不
  • 从 Plist 中存储和检索 [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 在 plist 文件中存储两个 NSMutableArray https stackoverflow com questions 6070568 ios store two nsmutable
  • 自动布局和ios5

    我正在使用故事板 我已经使用了自动布局 但它不适用于 ios5 并且会崩溃 所以我想删除它 但是 如何取消选中自动布局 但如果我取消选中自动布局 我如何为 iPhone 4 和 5 设置屏幕 Regards 您可以在 IB 中禁用自动布局
  • 更改 UITextField 辅助功能描述

    有没有办法将 UITextField 的辅助功能标签设置为 文本字段 之外的其他内容 因此 我不想将其称为 文本字段 而是将其命名为 代码验证字段 我的建议是不要试图在内置语音输出上智取系统 对于盲人用户来说 文本字段正在编辑 相当于 该项
  • MKMapView 中显示多个注释标注

    是否可以同时打开多个标注 代码 void mapViewDidFinishLoadingMap MKMapView theMapView for id
  • 如何使导航栏透明并淡出,就像 iPhone 中的照片应用程序一样

    我是 iPhone 编程新手 有人可以帮我吗 我想在iPhone中开发一个类似照片应用程序的应用程序 如何使导航栏和工具栏透明并淡出 就像 iPhone 中的照片应用程序一样 感谢你 UINavigationBar继承自UIView 所以你
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 在两个数字之间设置 UILabel 文本动画?

    我是 iPhone 和 Mac 编程新手 之前为 Windows 开发过 我有一个问题 我如何制作动画text的财产UILabel两个数字之间 例如从5 to 80以 Ease Out 风格 是否可以与CoreAnimation 我已经在谷
  • 检测 UITableView 中的水平平移

    我正在使用 UIPanGestureRecognizer 来识别 UITableView 中的水平滑动 准确地说是在单元格上 尽管它已添加到表格本身 然而 这个手势识别器显然窃取了桌子上的触摸 我已经让 pangesturerecogniz
  • iPhone ImageView序列动画

    嘿 尝试将一个简单的 png 序列动画放入我的应用程序中 我在 IB 中放置了第一个框架 并将图形动画出口连接到它 序列中有 54 个 png 名称为 Comp 1 0000 png 到 Comp 1 00053 png 这是我的代码 vo
  • 是否有一个类可以获取应用程序中的默认图片查看器?

    我不想访问 iPhone 上的图像 我想显示我的应用程序中的图像 但就像您查看 iPhone 相册中的图片一样 使用所有捏合和缩放控件等 这可能吗 我认为可能 偶然 有像 AVMediaPlayer 类这样的类可以做到这一点 谢谢 汤姆 如
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • NSSortDescriptor 和多对多关系

    我有两种反对意见 地点和历史项目 我正在尝试获取附加到任何历史记录项目的位置 因此该位置的获取谓词是 history count gt 0 效果很好 我还想使用 NSSortDescriptor 按最新历史项目的日期对位置对象进行排序 据我
  • 将我的免费应用程序从 Universal 升级到仅限 iPhone

    我释放我的free app到 appStore 它的版本是 1 0 它是一个Universal app 现在我想发布 1 1 版本到 appStore 我将其升级到iPhone only appStore会拒绝我吗 我已阅读类似的问题 ht

随机推荐

  • 是否可以为 StaticResource 动态创建 ResourceKey? (例如使用绑定)

    假设我要绑定的对象有一个带有表示 ResourceKey 的字符串的属性 如何获取 StaticResource 以基于与底层对象的绑定动态获取其 ResourceKey 我想要与此等效的东西 MyProperty StaticResour
  • 在 Material-ui v1.0.0-beta-1 中使用类覆盖会显示“未实现提供给类属性的密钥”警告

    我正在尝试使用以下方法覆盖 Material UI v1 组件的样式被类覆盖 method 当我尝试覆盖嵌套属性时 例如 hover上的伪类rootkey 我收到以下警告 Warning Material UI the key MyButt
  • div 内的按钮,不发送 div onclick - JavaScript

    我有一个 div 该 div 有一个 onclick 事件 div 内部有一些文本和一个按钮 当我单击文本时 会发送 div onclick 这很好 但是 当我单击 div 内的按钮时 按钮的 onclickanddiv 已发送 我知道这是
  • 在 Plotly 中向 3D 散点图添加注释

    我是这个领域的新手 希望得到一些帮助 我刚刚开始使用 Plotly 并使用它来构建一个非常基本的 3D 散点图 该图对一些货架以及物品所在位置进行建模 当我构建 架子 并渲染绘图时 我想在文本中添加注释 指示我正在查看哪组架子 这是我的程序
  • Ruby 中的堆栈级别太深,试图绘制随机卡

    运行下面的代码时出现错误 堆栈级别太深 如果随机选择的卡不存在 则会选择另一张随机卡 我想我应该以某种方式尝试一下代码 但我不确定如何 有什么建议么 def hit choice of card rand deck length choos
  • 重点组件参考

    我正在开发一个基于 java swing 的简单应用程序 如何获取和设置表单当前聚焦的文本字段 文本区域的文本 我知道如何确定哪个组件具有焦点 但我不知道如何获取组件的选定文本 我使用 getFocusOwner 但它返回一个组件 因此没有
  • 按对列结果查询

    目前我的数据集由 4 列组成 id status user id created date 所以一段时间后数据可以是这样的 1 LOGIN 2019 07 16 07 06 55 Bob 2 LOGOUT 2019 07 16 07 29
  • 显示网页上的幻灯片数量

    我编写了一个自定义滑块 如本代码笔所示 http codepen io anon pen NqQpjG我添加了额外的功能来计算移动的幻灯片总数 例如 如果幻灯片总数为 8 则起始值将如下所示 Slides 0 8 当一张幻灯片移动时 它会变
  • 将源代码多次传递到 cpp

    基本上 我试图将源代码两次传递给 gcc 的 cpp 然后直接传递给 gcc 的 c 编译器 至于为什么 我相信有些东西永远无法在宏中内联 这是一个例子 say i want to make an inline definition tha
  • magento后端无法登录致命错误getBlockName

    在 Magento 1 8 上运行 我正在复制到测试生产站点 但在后端我无法登录 这是错误消息 Fatal error Call to a member function getBlockName on a non object in va
  • 从 gtk 树视图的选定行获取数据 - gtkmm,c++

    我有一个 GTK 应用程序 它的窗口带有treeview和一个按钮 单击按钮时 我需要从所选行的第一列 也是唯一一列 获取数据treeview 这是列的类 class ModelColumns public Gtk TreeModel Co
  • 为什么我安装了 opencv3 包却无法导入?

    我目前正在运行 Python 3 5 并使用 Anaconda 的 Spyder 作为我的 IDE 我在 Windows 机器上运行这个 当我写作时import cv3在我的代码顶部 它返回错误ImportError No module n
  • jQuery 和 jQuery Mobile:点击与 touchstart、touchend、touchmove 和 click?

    是否jQuery 移动点击相当于向元素添加事件侦听器 如下所示 myElement addEventListener touchstart touchStartHandler false 如果是这样 那么其余的正常事件 例如touchmov
  • 当仅限于 Android 时,YouTube API 密钥会出现 500 错误

    我在使用仅在 Android 上安全使用的密钥查询 YouTube 搜索 API 时遇到了非常困难的情况 看来当我删除该密钥的限制时 该请求工作正常 当我尝试锁定它并发送证书和包标头时 如中所述这个解决方案 我收到一个非常无用的 500 错
  • 解决 goroutine 死锁

    我一直在尝试解决我在Golang并发中遇到的这个简单问题 我一直在搜索所有可能的解决方案 但没有发现任何特定于我的问题的解决方案 或者我可能会错过一个 这是我的代码 package main import fmt time func pro
  • 如何在 WPF 绑定中替换 StringFormat 中的字符串

    我需要更换一个 with n 新行 在我的字符串中 我想在客户端执行此操作StringFormat
  • R 无法使用 hist() 因为由于负十进制数而导致“内容不是数字”?

    我是 R 新手 我正在尝试使用 hist 绘制 100 000 个数字列表的直方图 如下所示 0 764 0 662 0 764 0 019 0 464 0 668 0 464 但我不能这样做 因为 R 抱怨内容不是数字 这是我尝试过的 我
  • 上传文件时nodejs和express错误,“无法读取未定义的属性”

    编辑 为了清楚起见 我希望将文件上传到服务器 无论是图片还是一些 txt 我已经查看了与此类似的其他常见问题 但无法缓解我的问题 目的是创建文件上传功能 前端看起来像这样 div class holdingDiv div
  • 位置粘在头上

    你可能知道 position sticky 已登陆Webkit demo 到目前为止 我可以看到这只适用于父元素 但我想知道是否可以在带有表格的滚动 div 中使用它 所以它需要 监听 的滚动事件div 不是table 我知道我可以使用 j
  • 线程 NSTimer

    我知道有关此主题的许多问题 因为我自己之前也问过一个问题 但是 我的问题现在似乎与线程部分更相关 我有以下2种方法 void restartTimer NSAutoreleasePool pool NSAutoreleasePool all