Clang LLVM 简介
本文将简单介绍 Clang LLVM 相关的知识,然后介绍一下代码是如何一步步的编译运行的,以及可以利用 clang 能做些什么。 简介编译器就是语言翻译器,把高级语言翻译成计算机能够执行的机器语言。 语言翻译主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (linker) → 可执行程序 (executables) LLVM (Low L ...
2020.01.11
编译
基础
iOS Blocks 小结
本文介绍一下 iOS 中 Block 相关内容,总结 Block 相关的使用方法和注意事项。 Block 概述Block 也被称作闭包,是不带有名称的函数,匿名函数。相当于是一个代码块,把想要执行的代码封装在代码块里,等需要的时候调用。 Block 表达式语法: 返回值类型(^变量名)(参数) = ^返回值类型(参数){ 表达式 }int (^myBlock1)(int) = ^(int num) { return num + 1; };void (^m ...
2019.12.30
基础
OC
Swift、OC混用
简介本文介绍一下,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
OC
Swift
GCD 多线程 小结
本文是对 iOS 中 GCD (Grand Central Dispatch) 的整理小结。总结了有关线程的知识点、GCD 的对应的使用方法。 线程与进程线程是系统能够进行运算调度的最小单位,线程被包含在进程中,是进程中的实际运作单位。一个程序至少有一个进程,一个进程至少有一个线程。一个进程中可以并发多个线程,执行不同的任务,可充分利用系统资源,提高性能。 进程是系统进行资源分配和调度的一个独立单位。线程自己基本上不拥有系统资源,同一个进程中的多个线程共享进程所拥有的 ...
2019.10.30
基础
OC
CentOS 7 安装 Nginx
简介Nginx (engine X)是俄罗斯人编写的一款轻量级的 Web 服务器、反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名。 反向代理由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过VPN访问的。 当我们在外网访问 ...
2019.08.21
服务器
nginx
网络
搭建个人博客
本文介绍一下在 mac 上进行操作,搭建个人博客 使用 hexo 框架搭建个人博客这里我们使用 hexo(https://hexo.io/) 框架进行搭建博客。 Hexo的工作机制Hexo基于Node.js,将/source文件夹下的资源(文章、图片、模板),按照预定的配置文件,转换成静态页面放置到 /public 目录下。如果需要预览或者部署,hexo会把public作为web目录处理. 1、首先下载安装 node.js,hexo 需要 node.j ...
2019.07.30
服务器
iOS RunLoop小结
RunLoop 简介RunLoop 实际上就是一种循环,在 “接收消息->等待->处理” 这样的循环中,去管理事件或者消息,例如触摸事件、UI刷新事件、定时器事件等。在消息来到时立刻被唤醒处理事件(用户态),在没有处理事件时休眠(内核态),避免资源占用。 iOS 系统中,提供了两个这样的对象:NSRunLoop 和 CFRunLoopRef。CFRunLoopRef 是在 CoreFoundation 框架内的。NSRunLoop 是基于 CFRunLoopRef ...
2019.05.30
基础
OC
iOS WKWebView与JS的交互
WKWebView 简介WKWebView 是苹果在 iOS 8 中引入的新组件,目的是给出一个新的高性能的 WebView 解决方案,解决之前 UIWebView 加载速度慢、占用内存大的问题。WKWebView 采用跨进程方案,Nitro JavaScript 解析器,高达 60fps 的刷新率,理论上性能和 Safari 比肩,而且对 H5 的高度支持,还提供了一个准确的加载进度值属性。 WKWebView 使用WKWebView 和 UIWebView 二者在使用上差 ...
2019.01.31
网络
iOS 代码混淆
简介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
12345