如何将 NSTimer 与这个简单的 while 循环一起使用?

2024-04-21

我有一个正在执行的 -(void) 方法,在某一时刻它会进入一个 while 循环,该循环在请求时直接从加速度计获取值

我浏览了有关 NSTimer 类的文档,但我无法理解在我的情况下如何准确地使用这个对象:

e.g.

-(void) play
{
    ......
    ...



    if(accelerationOnYaxis >0 && accelerationOnYaxis < 0.9 )
    {
        startTimer;
    }

    while(accelerationOnYaxis >0 && accelerationOnYaxis < 0.9)
    {
        if(checkTimer >= 300msec)
        {

           printOut_AccelerationStayedBetweenThoseTwoValuesForAtLeast300msecs;
           break_Out_Of_This_Loop;
        }

    }

    stopTimerAndReSetTimerToZero;

    .....
    more code...
    ....
    ...
}

有什么帮助吗?


你不能这样做NSTimer,因为它需要您的代码退出才能触发。NSTimer使用事件循环来决定何时给您回电;如果你的程序拥有控制权while循环中,计时器无法触发,因为永远不会到达检查是否到了触发时间的代码。

最重要的是,在繁忙的循环中停留近一秒半会耗尽你的电池。如果您只是需要等待1.4s,你最好打电话sleepForTimeInterval:, 像这样:

[NSThread sleepForTimeInterval:1.4];

您还可以使用clock() http://www.cplusplus.com/reference/clibrary/ctime/clock/ from <time.h>测量短时间间隔,如下所示:

clock_t start = clock();
clock_t end = start + (3*CLOCKS_PER_SEC)/10; // 300 ms == 3/10 s
while(accelerationOnYaxis >0 && accelerationOnYaxis < 0.9)
{
    if(clock() >= end)
    {
       printOut_AccelerationStayedBetweenThoseTwoValuesForAtLeast300msecs;
       break_Out_Of_This_Loop;
    }

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

如何将 NSTimer 与这个简单的 while 循环一起使用? 的相关文章

  • AVAudioRecorder 标准化音量

    我有一个可以录制音频的应用程序 我想知道如何才能增加增益 有没有办法标准化音频或以某种方式放大它 谢谢 豪伊 看来我找到了解决方案 根据文档 AVAudioPlayer 音量可以在 0 0 到 1 0 之间 显然它可以设置为大于1 0的值
  • Xcode 4 .xib 创建 iPad 版本

    我有一台 iPhone xib 我想将其变成 iPad xib 在 Xcode 3 中 有一个 创建 iPad 版本 菜单选项 我如何在 Xcode 4 中执行此操作 我目前调整了 xib 的大小 但是当我打开模拟项目 导航栏等 时 它会将
  • 如何在iPhone中制作UIButton垂直滑块菜单

    在我的应用程序中 我想制作带有滚动视图的 UIButton 滑块 其中当我们滚动按钮的 uiscrollview 时 按钮将位于中心 请参阅这些应用程序的第一个屏幕 sothttp itunes apple com au app id422
  • 当将 contentMode 设置为 UIViewContentModeScaleAspectFit 时,如何设置 UIImageView 左对齐或右对齐?

    我想在使用时控制图像对齐UIViewContentModeScaleAspectFit in UIImageView 例如 我有两个UIImageView在上述的一个视图中 这两个UIImageView的内容模式是UIViewContent
  • iOS中拖动时如何修改UIVisualEffectView的模糊度?

    目前 我正在使用 UIVisualEffectView 对图像应用模糊 我有一个 UIScrollView 当我在 scrollViewDidScroll 方法中向下拉滚动视图时 我正在更改 UIVisualEffectView 的 alp
  • UIButton 上的圆形渐变边框

    您好 我一直在尝试在我的应用程序中实现一个 UIButton 它具有圆角和渐变边框 我使用以下代码在按钮上创建渐变边框 let gradient CAGradientLayer gradient frame CGRect origin CG
  • 使用 facebook connect for iPhone 上传照片的记录流程

    看完之后 我确实在 Facebook 论坛上看到了这篇文章 link http forum developers facebook com viewtopic php id 30467 他们正在向 facebook 对象提供 UIImage
  • NSURLSessionDownloadTask 出现存储几乎已满磁盘警告的问题

    我在使用 NSURLSessionDownloadTask 处理 ios 上的 空间不足 磁盘已满 错误时遇到问题 如果由于应用程序中完成下载而导致磁盘已满 我会接到电话 URLSession 会话 NSURLSession 任务 NSUR
  • 以编程方式将 UITextField 设置为编辑模式

    我有一个UITextField我想以编程方式设置为编辑模式 屏幕上的键盘和文本字段框中的光标 我知道当此视图出现在屏幕上时 用户将处于编辑模式 因此我希望用户不必点击文本字段 a 的 编辑 属性UITextField是只读的 所以这是行不通
  • 如何将 JPG 文件加载到 NSBitmapImageRep 中?

    Objective C 可可 我需要将 JPG 文件中的图像加载到二维数组中 以便可以访问每个像素 我正在尝试 未成功 将图像加载到 NSBitmapImageRep 中 我尝试了以下两行代码的几种变体 NSString filePath
  • 无法发出桥接标头的预编译标头

    我从 GitHub 下载了一个项目 然后 pod 了以下文件 其中一些文件是由 OBJ C 编写的 我使用了桥接头 pod SnapKit pod MJRefresh pod Alamofire pod Kingfisher pod MBP
  • 如何命名一段代码并在不同的方法中调用它?

    我使用 Grand Central Dispatch 方法在队列中执行我的应用程序 我在该队列的计算中决定按钮的框架 我希望我的应用程序重新绘制其屏幕并计算旋转后的新帧 这是我所做的一些伪代码解释 CGFloat a 123 b 24 di
  • Swift 中的自定义输入视图

    我花了几个小时试图弄清楚如何创建 然后定制inputView上班 我有一个网格TextInputs 想想拼字板 按下时应该加载自定义inputView插入文本 我创建了一个 xib文件包含UI elements为定制inputView 我能
  • 使用 PHP 和 jSON 从 MySQL 获取 UIImage

    我正在开发一个小型新闻阅读器 它通过对 URL 执行 POST 请求来从网站检索信息 响应是一个带有未读新闻的 JSON 对象 例如 应用程序上的最新新闻的时间戳为 2013 03 01 当用户刷新表时 它会发布 domain com ap
  • 如何将图像放在 UIButton 中文本的右侧?

    如果可以避免的话 我不想使用子视图 我想要一个UIButton其中包含背景图像 文本和图像 现在 当我这样做时 图像位于文本的左侧 背景图像 文本和图像都有不同的高亮状态 最简单的解决方案 iOS 10 及更高版本 Swift button
  • 如何为 Mac OS X 制作可拖动的菜单栏图标

    我正在为我正在开发的应用程序编写菜单栏图标 但是 NSStatusBar 类没有可以通过 cmd 鼠标左键拖动来使图标可拖动的方法 如何使用 Objective C 代码使菜单栏图标可拖动 谢谢 目前您无法使用 NSStatusBar 来完
  • Xcode 找不到我的静态库!

    这是链接器错误 i686 apple darwin10 gcc 4 2 1 Users william Documents SettingsLibrary build Debug iphonesimulator libSettingsLib
  • 如何获取 ios 日期数组中的所有星期日

    我只想要一个数组 它以 NSDate 的形式包含一年中的所有星期一 但速度很快 我在 Objective c 中使用以下代码 但不知道如何在 swift 中使用它 NSDate pickerDate NSDate date NSLog pi
  • 具有多个 sqlite 文件的核心数据

    如何将 Core Data 与多个 SQLite 文件一起使用 每个文件都包含相同的结构 但数据是从不同的位置检索的 我希望能够在运行时根据应用程序设置在这些 sqlite 文件之间切换 当然 只需指向持久存储协调器 NSPersisten
  • iOS Swift 中断键盘事件

    我在拦截键盘事件时遇到问题 我已将我的 iOS 与 SteelSeries Free 游戏手柄控制器 连接 当连接到 iOS 时 它将被检测为蓝牙键盘 这是在我打开Notes时测试的 按下游戏手柄上的任何按钮都会写一个字母 我需要拦截此按钮

随机推荐

  • 通过 OpenXml SDK 的 XLSX 文件有效和无效

    我有一个程序将 System Data DataTable 导出到 XLSX OpenXml 电子表格 最后让它大部分工作 但是 当在 Excel 中打开电子表格时 Excel 抱怨文件无效 需要修复 并给出此消息 我们发现 中的某些内容存
  • 将 CMSampleBuffer 转换为 UIImage

    这是一个将 CMSampleBuffer 转换为 UIImage 的函数 来自 Apple 文档的代码 func imageFromSampleBuffer sampleBuffer CMSampleBuffer gt UIImage Ge
  • 如何在 Python 中将多级列表转换为字符串列表?

    我有一个看起来像这样的列表 a A V C A D D 我想创建另一个可以转换的列表a into AVC ADD 我将如何继续这样做 Use str join https docs python org 3 5 library stdtyp
  • 使用 Firebase 监听嵌套更改的正确方法是什么?

    背景 我正在尝试使用 Firebase Twilio 和 Node js 通过浏览器发送短信 我当前在 Firebase 中的数据结构如下所示 messages 15553485 FB GENERATED KEY 1 body hello
  • rSpec 和 Rails3 中的存根设计

    如何使用 rSpec 在 Rails 3 中存根 Devise 我有一个UsersController and a User模型 目前 这两者都与 Devise 相关 我正在编写控制器规格 但我真的很难实现作为 Devise 的期望sign
  • 如何为ListBox(值)索引或树视图节点设置相同的按钮事件?

    我有 C Win form 如下所示 我也有一些数组作为列表框的菜单 public string ArrayMain 1 Water 2 Air 3 Soil 4 Fire public string ArrayWater 1 Salty
  • 与最接近的值左连接,不重复

    我想在 MS SQL 中实现如下所示的效果 使用 2 个表并通过连接而不是迭代 从表 A 中 我希望每一行从表 B 中识别列表中的哪一个是它们最接近的值 并且当选择值时 该值不能重复使用 如果您以前做过类似的事情 请帮忙 先感谢您 SOre
  • 为 PHP CLI 安装 Xdebug

    我在用着XAMPP http www apachefriends org tr index html在 Mac OS 上 尝试使用PHPUnit http phpunit de的代码覆盖率检查 这需要XDebug http phpunit
  • EF 中的过滤器包含[重复]

    这个问题在这里已经有答案了 我有这个 LINQ 查询 它在 Include 中的筛选器上给出错误 当我在 Google 上搜索我的朋友时 我发现无法在 包含 中进行过滤 我已经找到了一些方法可以以另一种方式做到这一点 但我无法让它适用于我的
  • 如何找到第一个设置位的索引

    是否有按位解决方案来查找仅设置一个位的掩码中第一个设置位的索引 例如对于 8 则为 3 对于 16 gt 4 依此类推 请不要循环 我能想到的最佳解决方案是创建位到索引的映射 function firstBit x return Math
  • 如何为 HTML5 画布上下文设置 2 种字体?

    我试图让画布在绘制文本时使用两种字体 这是因为我的主要字体是 Comic Sans MS 这是一个儿童应用程序 由于我在 iPad 上找不到 Comic Sans 因此我尝试用 MarkerFelt Thin 来替代它 我尝试使用以下语句的
  • 如何在 powershell 提示符中使用波形符?

    所以我明白了 function global prompt Commands go here 在 powershell 中设置提示符 我可以用Get Location获取当前工作目录 我可以cd 并在我的主目录中 但是我可以让提示使用波浪号
  • 如何连接Kafka和Elasticsearch?

    我是Kafka的新手 我使用kafka通过logstash收集netflow 可以 并且我想将数据从kafka发送到elasticsearch 但是存在一些问题 我的问题是如何将 Kafka 与 Elasticsearch 连接起来 net
  • 无法从量角器测试中的元素值返回字符串

    因此 我试图从解决此承诺的元素值中获取要返回的字符串值 我想将原始字符串值传递给我在量角器测试中构建的另一个函数 这是元素 div div
  • 如何保证成员4字节对齐?

    为了使用 OSAtomicDecrement mac 特定的原子操作 我需要提供一个 4 字节对齐的 SInt32 这样的煮法有用吗 还有其他方法可以解决对齐问题吗 struct SomeClass SomeClass member sto
  • Cassandra cli:将十六进制值转换为人类可读的格式

    我开始于卡桑德拉 questions tagged cassandra 当我跑步时list or get命令在cassandra cli questions tagged cassandra cli 我得到这样的结果 default use
  • 检查用户是否登录时未定义 nil

    我想使用 Firebase 来检测用户是否登录 var auth new FirebaseSimpleLogin Ref function err user if err console log err else if user conso
  • 启动脚本似乎不起作用

    我最近开始在我的一些项目中使用 Google 的计算引擎 问题是我的启动脚本似乎不起作用 由于某种原因我的脚本不起作用 虚拟机具有启动脚本元数据并且工作正常当我手动运行它时 sudo google metadata script runne
  • 如何根据百分比更改imageview中的图像颜色并将颜色填充到该百分比

    如何根据百分比填充图像TextView 它应该根据百分比变化TextView 在下面的代码中 高度布局正在改变 但我希望图像的颜色应该根据百分比 textview 电池 的值 改变 CODE private void displayData
  • 如何将 NSTimer 与这个简单的 while 循环一起使用?

    我有一个正在执行的 void 方法 在某一时刻它会进入一个 while 循环 该循环在请求时直接从加速度计获取值 我浏览了有关 NSTimer 类的文档 但我无法理解在我的情况下如何准确地使用这个对象 e g void play if ac