Tenloy's Blog

Tenloy's Blog

你有多自律,就会有多自由

iOS SQLite的使用与优化
iOS 数据库方案目前移动端数据库方案按其实现可分为两类, 关系型数据库,代表有CoreData、FMDB等。 CoreData:它是苹果内建框架,和Xcode深度结合,可以很方便进行ORM;但其上手学习成本较高,不容易掌握。稳定性...
内存映射mmap函数的原理与应用
一、概述mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写...
AVFoundation Programming Guide(译)
AVFoundation概述 译文,原文链接:AVFoundation Programming Guide.(不完全一致。内容结构有调整,增加了一些类的定义源码) AVFoundation 是一个媒体框架,它提供的接口: 可以精确...
iOS音视频库概述
iOS 和 OS X 平台都有一系列操作音视频的 API,其中涵盖了从低到高的全部层级。随着时间的推移、平台的增长以及改变,不同 API 的数量可以说有着非常巨大的变化。本文对当前可以使用的 API 以及它们使用的不同目的进行简要的概...
[转] OAuth 2.0简述
原文链接 —— OAuth 2.0 的一个简单解释 —— 阮一峰 OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。 OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有...
WKWebView使用过程中遇到的坑
一、WKWebView的使用1.1 属性关于 extendedLayoutIncludesOpaqueBars 和 automaticallyAdjustsScrollViewInsets 这两个属性属于UIViewControll...
[转] 位运算实现加、减、乘、除运算
我们知道,计算机最基本的操作单元是字节(byte),一个字节由8个位(bit)组成,一个位只能存储一个0或1,其实也就是高低电平。无论多么复杂的逻辑、庞大的数据、酷炫的界面,最终体现在计算机最底层都只是对0101的存储和运算。因此,了...
Git的使用总结
一、Git 集中式版本控制系统,版本库是集中存放在中央服务器的(服务器必须联网才能连接)。所有人都是通过中央服务器来交换修改。 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库。两个人的电脑之间可以相互推送...
(六) dyld与Runtime—_objc_init、map_images、load_images
一、前文回顾上一篇(五) Mach-O 文件的动态链接、库、Dyld(含dlopen),大概梳理了dyld的加载流程,这一次主要展开“第八步 执行初始化方法”,其是我们日常紧密接触的OBJC Runtime初始化启动的上文。 先简单回...
(五) Mach-O 文件的动态链接、库、Dyld(含dlopen)
一、动态链接 本文只是简单说一下iOS中的装载下半部 — 动态链接。关于动态库的实现细节,比如:如何做到被多个进程共享(地址无关代码PIC、全局偏移表GOT等)没有细说。 1.1 流程概述动态链接的基本思想是把程序按照模块拆分成各个...
(四) Mach-O 文件的装载、ASLR及符号地址
先附上源码地址:结合 XNU 源码(应该不是最新的,且不怎么全,不过用来分析学习也差不多了),来看加载器的流程,效果更好。重要的两个类: bsd/kern/kern_exec.c:进程执行的相关操作:线程创建、数据初始化等。 b...
(三) Mach-O 文件的静态链接
一、链接概述链接通常是一个让人比较费解的过程,为什么汇编器不直接输出可执行文件而是输出一个目标文件呢?链接过程到底包含了什么内容?为什么要链接? 很久以前,人们编写程序时,将所有源代码都写在同一个文件中,发展到后来一个程序源代码的文件...
(二) Mach-O 文件结构
上一篇说到源码经过预处理、编译、汇编之后生成目标文件,这一章介绍一下iOS、Mac OS中目标文件的格式Mach-O的结构,方便了解之后的链接生成可执行文件的过程。 先附上相关源码地址:与Mach-O 文件格式有关的结构体定义都可以从...
[转] Make 命令的使用与NodeJS案例
原文链接:Make 命令教程 — 阮一峰 代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。 Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但...
常见架构模式: MVC、MVP、MVVM、VIPER
译自:iOS Architecture Patterns(模式图也已汉化)。在这里可以看到一个幻灯片 在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换? 相信...
常见的设计模式
一、架构相关术语1.1 架构软件架构就是软件的基本结构。是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 软件架构会包括软件组件、组件之间的关系,组件特性以及组件间关系的特性,如类与类之间的关系、模块与模块之 ...
常见的编程范式
一、术语1.1 模式与模型模式:模式(Pattern)是解决某一类问题的方法论,把解决某类问题的方法总结归纳到理论高度,就是模式。 模型:模型可以指实物。也可以是概念的模型,模型是由元素、关系、操作以及控制其相互作用的规则组成的概念系...
图形处理(三) - 图形处理实践案例
在项目中因为性能原因,最好不要叠加太多UIView,CALayer层级的显示;但是很多情况又必须使用到图片的合成或是像素、滤镜处理。这里针这些常用的图片处理使用不同图形处理框架进行相关编码实践。原文链接 — iOS图片处理实践、项目代...
图形处理(二) - 图形与视频处理相关的框架
原文链接 - iOS图形处理概论:OpenGL ES,Metal,Core Graphics,Core Image,GPUImage,OpenCV等 前言对于刚接触iOS图形相关框架的小白,有一些图形框架在字面上和功能上非常容易混...
avatar
Tenloy
一个努力自律,希望能自由的 iOS Developer.
按自己的记忆方式结构化记录下学习的知识。空间中有些内容非原创,基本都会注明出处,如有侵犯,烦请联系我删除,谢谢。