如何将 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 循环一起使用? 的相关文章

  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 在带有 Storyboard 的 XCode 4 中以模态方式推送视图时,出现“对开始/结束外观转换的不平衡调用”警告

    在网上进行了一些研究但没有成功后 我来这里向您询问有关我的警告的问题 实际上 我有一个带有导航控制器的视图 V1 我想在 V1 完成加载时推送模态视图 V2 所以我用performSegueWithIdentifier方法 我正在使用故事板
  • iPhone UINavigationBar 使用 [UINavigationBar 外观] 更改所有控制器的字体样式

    我知道我可以单独更改导航栏的字体 如本答案所述 更改导航栏的字体 https stackoverflow com questions 5832036 change the navigation bars font 目前我正在使用一种更全局的
  • 错误域=AVFoundationErrorDomain代码=-11814“无法记录”

    它不断给我错误 错误域 AVFoundationErrorDomain代码 11814 无法记录 我不确定问题是什么 我试图在拍照后计数器达到 1 时录制声音 static int counter counter will always b
  • 如何在 iOS 中更改部分透明图像的颜色?

    我有一个具有部分透明度的单色图像 我有正常版本和 2X 版本的图像 我希望能够用代码将图像着色为不同的颜色 下面的代码适用于普通图像 但 2X 最终会出现伪影 正常图像可能有类似的问题如果是这样 由于分辨率的原因我无法检测到它 UIImag
  • 使用 Interface Builder 创建 UIScrollView 的步骤

    我正在尝试使用 UIScrollView 但似乎有一些基本的事情我不理解 假设我想在我的 iPhone 应用程序中使用 UIScrollView 我有一个充满按钮的视图 尺寸为 320x700 显然 这对于 320x480 的 iPhone
  • 如何恢复消耗品应用内购买?

    我正在开发一款 iOS 游戏 用户可以通过应用内消耗品购买一定数量的内部货币 比如 1000 金币 如果用户想将余额从一台设备转移到另一台设备 如何恢复消耗品购买 在苹果的文档中 它说我们必须使用我们自己的服务器 但是如何获取用户的Appl
  • 以编程方式触发iOS摇动事件

    如何以编程方式触发 iOS 中的摇动事件 我尝试过以下方法 但它总是崩溃 void shake NSLog TEST UIMotionEventProxy m NSClassFromString UIMotionEvent alloc in
  • 错误:更改核心数据模型后架构armv7的重复符号

    我有一个使用核心数据框架的应用程序 我工作得很好 我刚刚更改了数据模型 向一个实体添加一个属性 当我尝试构建它时 出现错误 duplicate symbol OBJC METACLASS AccountFolder in Users XXX
  • 应用内购买产品禁用“提交审核”

    基于此处提到的所有步骤http troybrant net blog 2010 01 in app purchases a full walkthrough http troybrant net blog 2010 01 in app pu
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • SiriKit 错误:此应用程序不支持捐赠意图

    我在 Xcode 10 iOS 12 Beta 中捐赠自定义意图时遇到问题 我创建了一个在我的主应用程序目标和 OrderIntent 目标之间共享的自定义框架 我创建了一个 intentdefinition 文件 并将目标成员资格设置为我
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • 频繁绘制 CGPath 时的性能

    我正在开发一个将数据可视化为折线图的 iOS 应用程序 该图被绘制为CGPath在全屏自定义中UIView最多包含 320 个数据点 数据经常更新 图表需要相应地重新绘制 刷新率为 10 秒就很好了 到目前为止很容易 然而 我的方法似乎需要
  • iOS 循环对象的属性并添加操作

    我有一个具有几个类似属性的类 UISliders 我想添加用户开始和结束使用每个滑块时的操作 每个滑块都将链接到同一个选择器 因此我考虑只是迭代它们 而不是编写 10 个几乎相同的代码块 问题是 最有效的方法是什么 我尝试过这样的事情 在运
  • 在现有 iOS 应用程序中集成 React-native(0.40.0) 后找不到 Yoga/Yoga.h 头文件

    在我的 Swift iOS 应用程序中集成 React Native 后 我无法构建 yoga Yoga h file cannot be found 我已经浏览了文档 查看了react native github页面 检查了类似问题的SO
  • 如何反转 CGPath 的点顺序

    我想画一个圆圈 并用它打出字母 为此 我需要顺时针抚摸圆圈 逆时针抚摸字母 这一切都很好 但是当我使用 Core Text 获取字母路径时 我不知道如何从本质上反转该路径 不是镜像或旋转或任何东西 这很简单 我希望点笔画顺序是逆时针的 这实
  • 分发内部业务 IOS 应用程序

    我遇到了 IOS 应用程序分发的一个令人困惑的部分 因此 我需要简单细分一下我的限制 即仅将我的应用程序分发给我的员工 同事或任何被视为 内部 的人 这是表明我不希望该应用程序出现在应用程序商店中的另一种方式 我的情况是我为几家公司开发 他
  • 苹果推送通知在生产中不起作用

    我们完全陷入困境 请帮忙 我和我的团队制作了一个 iPhone 应用程序 这是我们第一次在 iOS 上尝试 一切都很好 直到我们提交应用程序并在应用程序商店上可用为止 推送通知服务无法正常工作 我在网上搜索并尝试根据人们的建议仔细检查我们的
  • 为什么使用 iPhone 或 iOS 设备在“iframe”中查看“position:fixed”时不起作用?

    我研究过 stackoverflow 似乎position fixed在 iOS 移动设备的 iframe 中 https stackoverflow com questions 15874910 position fixed and if

随机推荐

  • 通过 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