• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > 绝对误差和相对误差iOS:零误差或极小误差的定时执行或延迟执行?

绝对误差和相对误差iOS:零误差或极小误差的定时执行或延迟执行?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了绝对误差和相对误差,相对绝对误差,相对平均绝对误差,绝对误差,绝对误差计算公式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:绝对误差和相对误差 iOS: 零误差或极小误差的定时执行或延迟执行?
描述:

问题如下:

节奏类游戏需要执行很多的跟音乐节拍相关的操作,并且为了保证节奏感,需要让操作跟节拍的关系十分紧密。对两者间隔要求不能超过0.02秒或更低。

目前使用了 GCD 中的 asyncAfter(deadline:)方法,不过误差总是要大于0.05秒,并且还无法保证误差会不会传递下去。请问有更好的方式来解决误差吗?

var time = Date().timeIntervalSince1970
let dq = DispatchQueue(label: "queue", qos: .userInitiated, attributes: [.concurrent, .initiallyInactive])
            dq.async {
                self.audioPlayer.play()
                time = Date().timeIntervalSince1970
            }
            dq.asyncAfter(deadline: .now() + 0.43, execute: {
                let res = Date().timeIntervalSince1970
                print(" 误差: \(res - time)")
                
            })

以下是多次运行控制台打印结果(该数字指的是实际间隔,与期望间隔的0.43相差甚远,且不稳定):


解决方案1:

提一个工程而非技术上的思路。

程序启动时先运行测试平均的延迟时间,然后仍然使用标准的时间来定时,但使用标准的时间和平均延迟时间的时间差来延后执行。

解决方案2:

CADisplayLink?

解决方案3:

http://blog.lessfun.com/blog/...


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 绝对误差和相对误差iOS:零误差或极小误差的定时执行或延迟执行?

相关文章

  • 2017-06-05 ios固件下载ios区分渠道下载注册
  • 2017-06-05 weex在IOS上面navigator的push多次后,手势向右滑动只能返回一页问题
  • 2017-06-05 如何获取UITableView编辑模式下的系统自带手势?
  • 2017-06-05 SwiftSwift中where从句应该怎么用?
  • 2017-06-05 afnetworking返回json以后怎么解析?
  • 2017-06-05 iOS蓝牙40如何同时连接多个外设?
  • 2017-06-05 关闭ios虚拟键盘ios中,在一种键盘类型中,怎样切换字符页面
  • 2017-06-05 Alamofire如何将request添加到一个队列里面,顺序执行??
  • 2017-06-05 swift的一个问题,请教各位
  • 2017-06-05 UICollectionView如何自定义item之间的间隔样式?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • SDWebImage展示方式求解?
    • 为什么block里面使用self,instrumentsleaks没有检测出内存泄漏?需要用什么方法才能检测出
    • 京东商城淘宝网首页淘宝京东首页刷新原理
    • OC网络编程这三种流程控制,在OC里面应该怎么样表达??
    • iOS开发,使用定位功能时系统会弹出弹窗询问用户是否同意定位。
    • 关于UITextFieldDelegate的问题设置导航栏Done键在无输入下不可用
    • C#串口通信AsyncSocket通信客户端识别不了中文
    • 自己app如何把坐标地址传给高德导航并打开高德导航app
    • lazyloadIOS中的LazyLoad思想
    • iOS按某一点缩放

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有