如何使一个对象属性无法扩展、修改和删除? 之前在使用Angular 8 时,遇到过一个问题: 在路由中取出路由里的路径参数可以使用this.activatedRoute.snapshot中的queryParams属性,即路径中?号后面的参数。但当时的需求是取完之后要删除某个参数(id)的值,所以想当然地进行如下操作 const params = thi...
iOS 与 js的交互
JS调用OC 通过wkwebview的WKScriptMessageHandler协议, 注入api方式 iOS 添加监听 [_wkWebView.configuration.userContentController addScriptMessageHandler:self name:name]; 实现协议中的方法(void)userContentC...
iOS GCD 几种场景
Grand Central Dispatch(GCD) 是 Apple 开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并发任务。在 Mac OS X 10.6 雪豹中首次推出,也可在 iOS 4 及以上版本使用。 有两种任务执行队列,均遵循FIFO原则进行任务的执...
iOS 音视频开发基础(一)
iOS 音视频开发基础 视频的构成 表面上看,视频由图像和音频构成。其实从内容元素上看,视频包含: 图像 音频 , 编码格式: AAC MP3 …… Metadata 视频编码格式: H.26X系列:H.261, H.262, H.263, H.264, H.265 ……,其中264比较常见,等同于MPEG-...
Js 事件循环
Js事件循环的理解 代码运行不可避免地会涉及到一个非代码顺序执行的问题,典型的场景就是异步请求,但Js又是单线程运行,所以需要有一个事件循环机制来实现这一系列操作。 两个任务执行队列 - Micro Task(微任务), Macro Task(宏任务) 维护这两个队列 从宏任务队列中取出一个任务执行 在执行完这个宏任务,取出下一个宏任务之前,循环...