我们经常会有需要一个方法或者处理需要延迟一段时间执行, dispatch_after 函数就是用来实现这种功能
打印结果如下
dispatch_after 有三个参数,第一个参与用来指定时间,传入的是dispatch_time_t类型的值,通过dispatch_time和dispatch_walltime函数生成。第二个参数是任务添加的队列,第三个是任务的block。
dispatch_after 的功能是在指定的时间将任务加入到队列中,而不是在指定的时间执行,如果所在的队列上有耗时任务在执行,那么时间上可能出现误差。
打印结果
dispatch_time 需要传入两个参数,第一个参数是时间点,第二个参数是时间长度,函数的作用就是获取时间点经过时间长度之后的时间点。第一个参数我们经常使用的是DISPATCH_TIME_NOW,表示现在这个时间点。第二个参数表示的时间长度使用数组 NSEC_PER_SEC的方式获得。
dispatch_walltime 函数的第一个参数需要一个struct timespec类型的值,第二个参数是以纳秒为单位的延迟时间。
打印结果
“在自动化测试过程中,Android可以用adb来辅助,IOS却不太好 *** 作,有没有办法呢?
在自动化中,IOS我们可以用libimobiledevice来辅助做一些工作,用xcrun simctl可以来 *** 纵模拟器,具体咋用呢?
什么是libimobiledevice
一个跨平台的软件协议库和工具来与iOS设备进行本地通信 LipimBielEdter是一个跨平台的软件库,用于支持iPhone等mac设备的协议。不像其他项目,它不依赖于使用任何现有的专有库,不需要越狱。它允许其他软件轻松访问设备的文件系统,检索有关设备及其内部设备的信息。官方网站: >
解决使用vue做时间转换或倒计时,在ios上显示为NAN的问题
试过网上的正则匹配替换"-"为"/",但无效
最后使用momentjs成功解决
首先打开终端安装moment
npm install moment --save
安装成功后显示
使用示例(时间戳可用来对比时间差做倒计时等):
转化后 2021/01/10 10:12:12 时间戳 1610244732000
ios锁屏或页面隐藏时,定时器setInterval倒计时不执行,解锁显示后才执行的问题
2021-08-26 22:04 625阅读
手机锁屏后,ios h5浏览器定时器暂停执行了,发送验证码的秒数或倒计时没有继续往下走,遇到这种问题可以用visibilitychange这种方式处理


addVisibilitychange();这个方法记得只在ios环境下执行,安卓不需要。网上找一下判断ios和安卓的方法。


// 监听页面隐藏(锁屏)或后台执行时,解决定时器不执行的问题
addVisibilitychange(){
let that = this;
let start,end,vibS,newS;
documentaddEventListener('visibilitychange',function(){
// hidden 为锁屏隐藏状态,visible为重新显示状态
if(documentvisibilityState === 'hidden'){
start = new Date()getTime();
} else if(documentvisibilityState === 'visible'){
end = new Date()getTime();
// vibS为锁屏间隔的时间(秒),timer为定时器锁屏前显示的秒数
vibS = Mathfloor((parseInt(end) - parseInt(start))/1000)
newS = parseInt(thattimer) - vibS
if(newS >0){
// 重新赋值,间隔后的新的定时器时间
thattimer = newS
} else {
// 已经超出范围,则默认秒数已经读完,恢复原来时间、定时器,显示重发验证码文案
thattimerShow = false;
clearInterval(thattimeing)
thattimeing = null
thattimer = 120
}
}
});
},
定时器代码
getTimeCount(){
if(!thistimeing){
thissmsCode = ""; // 清空验证码
thistimerShow = true;
thistimeing = setInterval(()=>{
thistimer--
if(thistimer <0){
thistimerShow = false;
clearInterval(thistimeing)
thistimeing = null
thistimer = 120
}
},1000)
}
},
收藏
关注
赞( 0)
海报 分享
文章版权声明:注明蒲公英云原创文章,转载或复制请以几秒超链接形式并注明出处。
发表评论

以上就是关于iOS GCD使用dispatch_after、dispatch_time、dispatch_walltime全部的内容,包括:iOS GCD使用dispatch_after、dispatch_time、dispatch_walltime、iOS自动化【一点经验】、Vue解决时间在ios显示NAN的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)