当前位置: 首页 > news >正文

建网站的流程及注意事项/网页设计作品集

建网站的流程及注意事项,网页设计作品集,网站建设倒计时单页源码,做营销网站推广一、回调函数 回调函数就是允许用户A把需要调用的方法B的指针作为参数注册给另一个函数C,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。 回调函数B不由该函数的实现方A直接调用,而是在特定的事件或条件发生时由另外的一方C调用&#xff0c…

一、回调函数

回调函数就是允许用户A把需要调用的方法B的指针作为参数注册给另一个函数C,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。
回调函数B不由该函数的实现方A直接调用,而是在特定的事件或条件发生时由另外的一方C调用,用于对该事件或条件进行响应。

在swift中有同步和异步两种形式的回调函数:

同步回调函数异回调函数步
C调用方法B,B可以是函数或者closureC调用函数B并使B在另一线程(也可以是相同线程)上运行
B返回之前C处理block状态B和C运行在不同的线程,不会互相block。
B返回之后C继续执行B结束后会通知C

主线程不能被block住,否则
- UI无响应
- APP卡住
因此如果回调函数要执耗时且有可能失败的操作,建议使用异步式的回调函数

同步回调函数有时用于作为delegation的替代品。

二、同步回调函数的例子

func C( x : Double, fn : (Double -> Double) ) -> Double?
{....return fn(x)
}
//调用者A
let ret = C(0.01, fn : B)

例子中fn是一个回调函数,由sync的用户动态地决定sync操作触发什么函数
如果fn是一个耗时且可能出错的函数,例如访问网络数据。那么就不能让fn在主线程上运行。要把它改成异步调用的方式。

三、异步回调函数(一)

let P = NSBlockOperation() {let res = C(0.01){B}let Qres = NSBlockOperation() {if let p = ret {...}else {...}}NSOperationQueue.mainQueue().addOperation(Qres)
}
let Q = NSOperationQueue()
Q.addOperation(P)
  1. 将C和B封装到一个操作P中。
    P是一个使用了trailing closure语法的closure
  2. 把P加入到操作队列Q中,Q队列中的操作会在一个独立的线程中执行
  3. 修改操作P,将B完成后的后续处理封装到操作Qres中
  4. 把Qres加入到主线程的操作队列

效果:
在另一个线程执行P中的C
C执行结果后执行主线程中的Qres
在另一个线程上执行P时,主线程不受影响

四、异步操作的回调函数(二)

func C(x : Double, fn : Double -> Double, completion : Double? -> Void) {let P1 = {...ret = fn(x)}let P2 = {completion( ret )}NSOperationQueue.mainQueue.addOperationWithBlock(P2)
}
//调用
C(0.01, fn : B, completion : comp)

1.把调用回调函数的过程与结果分别封装到两个operation中
2.在其它线程执行P1
3.P1结束后在主线程执行P2

http://www.lbrq.cn/news/834949.html

相关文章:

  • 开发游戏app/下载班级优化大师
  • 做网站需要多大空间/如何推广自己的产品
  • 云建网站网址/温州seo排名优化
  • 如何做彩票网站的源码/seo零基础教学
  • 昆明网站建设服务至上/腾讯云建站
  • 网站后台管理系统下载/搜索引擎排名谷歌
  • 建网站的公司叫什么/seo是搜索引擎营销吗
  • 不同代码做的网站后期维护情况/深圳百度开户
  • 光谷网站推广/优化大师的优化项目有哪7个
  • 学做湘菜的视频网站/网站竞价推广
  • 网站开发课程设计报告/淘宝流量
  • 电子商务网站策划ppt/自己的网站怎么建立
  • 中国建设注册中心网站/搜索关键词优化排名
  • 申请个人手机网站空间/舆情监测
  • 淄博网站制作托管优化/关键词seo优化
  • 腾云网建站/厦门网页搜索排名提升
  • 自己免费做网站有什么用/seo排名优化服务
  • 做网站用java还是php/北京网络营销推广外包
  • 网站推广的内涵/什么叫优化
  • discuz网站编码/上海疫情突然消失的原因
  • 网站设计开发软件网页美化工具/2021十大网络舆情案例
  • 中国核建平台/seo网页推广
  • 电商网站主题/营销网站定制公司
  • 濮阳h5建站/网站推广的工作内容
  • 独立ip做网站/招聘网站排名
  • wordpress怎么在导航栏添加搜索框/seo推广费用需要多少
  • 网站的线下推广怎么做的/推广哪个网站好
  • 策划书的网站/网络推广有哪些渠道
  • 学校网站建设策划/长沙seo运营
  • 动态网站建设实训参考文献/seo排名怎样
  • 【RAG实战】用户反馈如何关联算法优化
  • JavaScript中的Window对象
  • 《计算机“十万个为什么”》之什么是 feed 流
  • Kotlin比较接口
  • beautiful-react-hooks库——入门实践常用hook详解
  • 基于按键开源MultiButton框架深入理解代码框架(一)(指针的深入理解与应用)