nkq's Blog

「“累了就躺会儿,吃点好吃的”」

JSBridge的实现与项目中的封装思路(二)

iOS JSBridge

上一篇讲到来自JS的请求是如何调用原生代码的,这一篇来看原生的代码是如何调用JS的,以及请求究竟是如何发送的 原生代码调用JS 在flushMessageQueue这个方法中,进行了responseId的判断,这个responseId存储在OC代码调用JS时由sendData方法维护的字典中,在OC的请求发出后,看一下JS代码的实现 1 2 3 4 5 6 7 8 9 10 1...

JSBridge的实现与项目中的封装思路(一)

iOS JSBridge

在iOS应用中使用网页来展示内容已经成为越来越风靡的方式。优点有很多。 使用WebViewJavascriptBridge 从苹果推出 WKWebView 后,比较建议使用 WKWebView 展示网页,而我入门较晚,接触到的也都是 WKWebView 的项目,它提供了很多与网页交互的方法,都比较基础,在它上面封装一层很有必要,可以方便开发者使用。 被广泛使用的是 Github...

RunLoop原理

What is the RunLoop?

初次接触RunLoop的概念,是在初步了解NSObject和学习手势识别时,看的一头雾水,现在总结一下内容。 RunLoop的定义 Run loops are part of the fundamental infrastructure associated with threads. A run loop is an event processing loop that you ...

ViewController和APP的生命周期

ViewController and APP Lifecycle

APP生命周期 APP是运行与系统之中的,因此系统会对APP产生影响,比方说让APP从前台退出,用户暂时去使用其他APP,这时APP会进入后台运行状态,至于是否挂起,还要看具体的实现情况,事实上APP的生命周期包含了以下几个状态 状态 not running app还未被启动或者被系统或用户终止了的状态 inactive app正在启动时处于的状态,但是不接收操作事件的通知,...

Spring Boot自动装配源码分析

java, 编码

Spring Boot可以自动装配我们所需要的对象,做到开箱即用,在其启动过程中会经过一系列的操作,完成所需对象的加载,并供我们使用,这些对象是怎么加载的,Spring Boot又是怎么管理他们的? 查看依赖项目 发现除了已经选择的Starter,其他东西没几个,但是项目有一个父项目 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19...

了解JVM(HotSpot)

Java

研究JVM首先要知道它是做什么的,它是一个虚拟机,我们写的java程序需要经过编译后生成class文件,在JVM内完成执行,JVM是如何做到这些的?它包含哪些结构?里面的一些机制是怎么实现的?最近学习了一点皮毛,打算记录下 JVM的基本结构 结构来看,执行我们的代码需要从编译我们写的Java代码开始,一直到类加载器再到JVM内部完成程序的执行,中间包含了许多的细节 ...

从零开始的黑苹果 Big sur安装

How to install macOS Big Sur on PC

近日使用Clover迁移到OC时,清除nvram操作不当,导致原有的Catalina出现问题(“您的电脑因为出现问题而重启”),索性直接重新安装Big Sur吧,反正想升级也很久了 提醒下如果要解决“您的电脑因为出现问题而重启”这个问题,需要输入一下命令,清除指定信息(kernel panic) 1 sudo nvram -d aapl,panic-info 我的Wind...

黑苹果开机后出现 Default Boot Device Missing or Boot Failed

fix Hackintosh error, Default Boot Device Missing or Boot Failed

我的电脑今天自行休班了,报了一个错误 乍一看好像是硬盘炸了…… 开机按Fn和F2进去BIOS,发现还可以看得到硬盘,稍微放心了,应该只是引导的问题 PE 用U盘装上WePE(这一步忘记截图了),在PE里面替换了一下前几个月备份的整个CLOVER文件夹,然后用BOOTICE来修复引导,发现无论如何都无法成功添加新的UEFI 尝试直接格式化EFI分区,在重新设置分区后,依然无法添加新...

快手视频爬虫实现

Python, 爬虫

一个小项目,写一个快手爬虫,结合这几天学的半吊子Vue,做了一个播放器 本文章不涉及播放器实现 爬虫实现 使用无界面selenium访问快手获取网页源码 xpath分析网页源码,获取有用的信息 添加延时,保证网页结构顺利加载的同时,避免IP被封禁 分析网页 打开快手播放的网页'https://video.kuaishou.com/featured/',使用Ch...

XMLHttpRequest与Ajax

JS, Web

浏览学习了“ruoyiqing的你真的会使用XMLHttpRequest吗?”这篇文章 AJAX和XMLHttpReques AJAX是基于XMLHttpReques、CSS、JS、HTML使网页更动态的功能实现,可以实现局部的网页动态更新而不必刷新网页,由此可以提高用户体验 XMLHttpReques LV2 功能更新 阮一峰XMLHttpRequest Level 2 ...