本文将简单介绍 Clang LLVM 相关的知识,然后介绍一下代码是如何一步步的编译运行的,以及可以利用 clang 能做些什么。
简介编译器就是语言翻译器,把高级语言翻译成计算机能够执行的机器语言。
语言翻译主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (linker) → 可执行程序 (executables)
LLVM (Low L
...
2020.01.11
本文介绍一下 iOS 中 Block 相关内容,总结 Block 相关的使用方法和注意事项。
Block 概述Block 也被称作闭包,是不带有名称的函数,匿名函数。相当于是一个代码块,把想要执行的代码封装在代码块里,等需要的时候调用。
Block 表达式语法:
返回值类型(^变量名)(参数) = ^返回值类型(参数){ 表达式 }int (^myBlock1)(int) = ^(int num) { return num + 1; };void (^m
...
2019.12.30
简介本文介绍一下,Swift、OC 的互相调用的方法。两种情况,OC 中调用 Swift 的情况,和 Swift 中调用 OC 的情况。本文是在当前最新的环境下的操作,Swift 5、Xcode 11.3。
1、OC 中调用 Swift 的情况在 OC 的项目中新建一个 Swift 的文件,在创建的同时,Xcode 会弹出提示是否创建桥接文件,选择创建,然后会发现 Xcode 会自动创建一个桥接文件 xxx-Bridging-Header.h
然后在 OC 的代码中导入头
...
2019.12.11
本文是对 iOS 中 GCD (Grand Central Dispatch) 的整理小结。总结了有关线程的知识点、GCD 的对应的使用方法。
线程与进程线程是系统能够进行运算调度的最小单位,线程被包含在进程中,是进程中的实际运作单位。一个程序至少有一个进程,一个进程至少有一个线程。一个进程中可以并发多个线程,执行不同的任务,可充分利用系统资源,提高性能。
进程是系统进行资源分配和调度的一个独立单位。线程自己基本上不拥有系统资源,同一个进程中的多个线程共享进程所拥有的
...
2019.10.30
简介Nginx (engine X)是俄罗斯人编写的一款轻量级的 Web 服务器、反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名。
反向代理由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过VPN访问的。
当我们在外网访问
...
2019.08.21
本文介绍一下在 mac 上进行操作,搭建个人博客
使用 hexo 框架搭建个人博客这里我们使用 hexo(https://hexo.io/) 框架进行搭建博客。
Hexo的工作机制Hexo基于Node.js,将/source文件夹下的资源(文章、图片、模板),按照预定的配置文件,转换成静态页面放置到 /public 目录下。如果需要预览或者部署,hexo会把public作为web目录处理.
1、首先下载安装 node.js,hexo 需要 node.j
...
2019.07.30
RunLoop 简介RunLoop 实际上就是一种循环,在 “接收消息->等待->处理” 这样的循环中,去管理事件或者消息,例如触摸事件、UI刷新事件、定时器事件等。在消息来到时立刻被唤醒处理事件(用户态),在没有处理事件时休眠(内核态),避免资源占用。
iOS 系统中,提供了两个这样的对象:NSRunLoop 和 CFRunLoopRef。CFRunLoopRef 是在 CoreFoundation 框架内的。NSRunLoop 是基于 CFRunLoopRef
...
2019.05.30
WKWebView 简介WKWebView 是苹果在 iOS 8 中引入的新组件,目的是给出一个新的高性能的 WebView 解决方案,解决之前 UIWebView 加载速度慢、占用内存大的问题。WKWebView 采用跨进程方案,Nitro JavaScript 解析器,高达 60fps 的刷新率,理论上性能和 Safari 比肩,而且对 H5 的高度支持,还提供了一个准确的加载进度值属性。
WKWebView 使用WKWebView 和 UIWebView 二者在使用上差
...
2019.01.31
简介class-dump 可以很方便的导出程序头文件,考虑到App安全问题,防止我们核心的代码被别看到,需要对我们的代码进行混淆。
class-dump介绍
class-dump可以将 Mach-O 文件中的 OC 运行时的声明信息导出,即编写 OC 代码时的.h文件。class-dump是对”otool -ov”信息的翻译.以一种我们熟悉的易读的方式呈现。
Mach-O(Mach Object File Format)是 macOS 上的可执行文件格式,类似于 Linu
...
2019.01.08
简介正则表达式(Regular Expression,常简写为regex、regexp或RE),使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在编写处理字符串的时候,经常会有查找符合某些复杂规则字符串的需要,例如,查找字符串中的数字、电话号码等。正则表达式就是用于描述这些规则的工具,就是一种记录文本规则的代码。
基本语法一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列匹配某个句法规则的字符串。例如:Handel、Händel和Haend
...
2018.12.15