Message objc_msgSend 消息机制发送消息,继承结构查询消息动态方法解析,让用户自己给实例对象 or 类对象添加方法消息转发,当 1,2 都失败
目前分析几种 LRU 实现LRU:Least Recently Used 最近最久未使用常用于大量数据中只会频繁调用部分数据的优化算法在 OS 中缓存算法(页面
请看 Masonry 源码分析这篇文章是写给自己看的,初稿(DSL 其实是 Domain Specific Language 的缩写,中文翻译为领域特定语言)分
使用 closures 代替 Gesture Recognizers 选择器原文 Adding Gesture Recognizers with Closures Instead of Selectors添加UITapGestureRe
苹果的渲染框架(通俗的理解)根据日常开发和上图分析渲染流程UIKit: 开发中使用的用户交互组件都来自于 UIKit (理解为收集渲染信息+用户交互事件信息的框
原文:CustomKeyboard 自定义键盘API开发自定义键盘的快速入门,如下图,它展示了键盘运行过程中一些重要的对象,以及它们在开发流程中的的位置:自定义
RunLoop 是系统层级上的设计,用来给管理系统消息队列派发,那我们都可以用 runLoop 做什么呢?简单来说,RunLoop 是用来监听输入源,进行调度处
目标:使用代码替代 UIViewLayoutFeedbackLoopDebuggingThreshold 符号调试,来捕获 Autolayout反馈循环所导致的
分析源码:这个第三方库,他设计的目标是什么?需要哪些基础知识整体结构是什么样的由外而内逐层分析层次结构每个层次结构的意图是什么,为了实现这个意图他使用了什么方式
简介在 Foundation 框架中支持协议:FTP协议(ftp://)超文本传输协议(http://)加密超文本传输协议(https://)本地资源(file
深入理解 Autolayout 与列表性能 – 背锅的 Cassowary 和偷懒的 CPU深入浅出iOS编译不了解GIF的加载原理?看我就够了!iOS 保持界
为什么看抽空晚上睡不着看 awesome-ios 提供的优秀代码库[Me](https://github.com/pascalbros/Me 源码 他是做什么的
RxSwift + MVVM:如何提供ViewModels原文:RxSwift + MVVM: how to feed ViewModels 介绍自从我们开始在BlaBlaCar的Model-View-ViewMode
响应链就是 UIRespondser 对象的组成链 什么可以作为响应对象响应者链通常是由视图(UIView)构成的一个视图的下一个响应者是它视图控制器(UIVi
雪球速读法–浅析《雪球速读法》中说:速读的方式是:速度技巧 * 资料库(大小) = 速读反复读 n 变每次快速阅读,要求1.不求甚解,2.脑子里不要有读的声音具
此文整理iOS 保持界面流畅的技巧 屏幕显示原理 CRT 显示器原理一帧画面:CRT 的电子枪从上到下一行行扫描,扫描完成后显示器就呈现一帧画面,随后电子枪回到
原文: RxDataSources Table 和 Collection View data sources 特性[x] O(N)计算差异的算法该算法假设所有
+ loadload 是通过 c 函数调用的load 调用在 main 函数之前,动态链接器通知调用 load_images,执行load 方法load 加载顺
引用Optimizing Images 翻译WWDC 2018 session 219 Image and Graphics Best Practices 图像
Operation 的优势Operation 底层是由 GCD 实现的,他的最大的优点是 复用性向GCD 中的 queue 中放 task 的方式有两种添加 b
GCD 是操作系统层级的概念,他给用户提供了操作线程的 API任务派发中心,内部实现原理是有了 FIFO 分发队列,GCD 源码使用 GCD 用户不需要直接操作
前言一个 app 原型&需求来了以后,如何实现呢?本来一个完成的东西如何把需求翻译成程序呢? 正常节奏:分析需求原型分析需求分析技术点调研分析架构方式使
viewController transitions前言iOS 系统提供了像 push, pop, cover vertically 这样的 ViewController 过渡,该篇分析如何自定义自己的 View
objc 《App 架构》 笔记 如何设计架构确定模块(Model 层,View 层,协调器……)如何确定模块?联想实际场景,分析责任、行为,确定模块!!为什么
为什么oc 会设计block 呢?oc 是 c扩展,c 中第一个想到的事回调函数—— 用来做控制翻转可是 callback 不能捕获变量而 block 本质 o
一个 jpeg,png…… 图片是压缩过了的,解压后会变成 尺寸 * 4byteeg: png 尺寸 480 * 720,需要解压成位图 bitmap 480
架构的时候容易乱——使用 “T” 字模型思考原因:架构代码的时候,总想有没有更好地解决方案,如何尽可能的模块解耦,责任单一……,如何查分类,架构中需要有什么模块
OC对象分析 系统在 runtime 时如何查找方法oc 实例对象不存储方法的,方法都在类对象里面 objc_class 源码结构class_rw_t里面的me
程序的内存布局代码段 __TEXT:编译之后的代码数据段 __DATA字符串常量:比如NSString *str = @“123”已初始化数据:已初始化的全局变
NSProxy 做代理方法(解决 NSTimer 循环引用)CADisplayLink 跟 NSTimer 会对target产生强引用,如果target又对它们产生强引用,那么就会引发循环引用两个定时器的差别CADisp
如何检查资源竞争的问题?打开 thread Sanitizer 然后 run project 锁锁是操作系统解决资源冲突的一种机制,用来控制线程同步在 appl
爬楼梯 问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?12345678910111
合并两个有序数组 题目描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。123
无重复字符的最长子串 题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。123456789101112131415示例 1:输入: "ab
关联对象是什么他是 objective-c runtime 机制中提供的一个接口,让用户在运行时,动态的给类添加关联属性 关联对象的主要作用开发中如何给 cat
前言runtime 维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表其实是一个hash(哈希)表:key是所指对象的地址value是we
AutoRelease 内部结构AutoReleasePool 是利用语言上的特性,程序内存自动回收问题的12345int main(int argc, cha
前言序列化是将对象的状态信息转换为可以存储或传输的形式的过程(对象<–>I/O流)。对象信息序列化以后变成 I/O 流:可以本地化存储(持久化对象)
Texture 目标&优点Texture 的 Layout API是 UIKit AutoLayout 的高效替代品Fast:自动布局比 AutoLay
一般想法 delloc 会在对象释放的时候调用。用户重载该方法释放自己分配的堆控件,移除订阅……在 MRC 中12345678- (void)dealloc &
使得系统setting页面中有自己app 的设置iOS开发之Settings Bundle的使用 app 和 app Extension 共享数据UserDef
介绍倒装句是⼀种把动词(或助动词)移到主语前⾯的句型。以这个定义来看,⼀般 的疑问句都可以算是倒装句。撇开疑问句这种只具有语法功能的倒装句不谈,⽐较值得研究的是
使用数据:英语魔法师之语法俱乐部记录自己学习英语的过程
在 Rxswift中rx_tap : 原始语法The original syntaxrxTap : 同上,但是语义有歧义,如果不是 Rxswift库中却是用 r
在看文 RxSwift 相关官方文档以后,知道 RxSwift 提供的多种功能以后,在实际场景中我们该怎么使用呢? 前言本篇文章只谈 rx 在 MVVM 中如何
Swift 语法 Swift 中位移枚举如何表示OC 中位移枚举1234567// 位移枚举typedef NS_OPTIONS(NSUInteger, Dir
NodesASDisplayNode 是 UIView 的抽象层, 就像 UIView 是 CALayer 的抽象层一样. 不同的是 UIKit 只能运行在主线
学习目的知道 rxswift 都有什么知道他们都怎么用知道为什么有这些东西根类归纳整理如何自己扩展适当分析源码 主要概念可监听序列(信号)operator(信号
原文:Action该库与RxSwift一起使用,以在可观察对象之上提供抽象:Action。Action 是说“嘿,稍后我需要你订阅此内容”的一种方式。实际上,它
RxSwift 3.Subject(Observable & Observer)首先在开发的时候思考,他是一个 Observable AsyncSubject特点:当 Observable Sequence 发送 complete 事件,A
Observer: 监听 Observable Sequence,接受它传来的 events 如何创建 Observer Observable 的 subscr
原文: Hot and Cold Observables恕我直言,我建议更多地将其视为序列的属性,而不是单独的类型,因为它们由完全适合它们的相同抽象表示,即可观
特性完全是可选的。你可以自由地在程序中的任何地方使用原始的Observable序列,因为所有核心RxSwift / RxCocoa API都支持它们。 特征是如
原文:Coordinators Redux今年年初我写过关于 协调器的文章, 但是自从那以后对于协调器的思考已经成熟了很多,我想通过这几个月所学的东西来来重新介
这篇是 RxFlow 系列文章的最后一章。在前两篇文章中,我已经介绍了所有关键功能/原理让我们深入探讨我在响应式编程中发现的技巧和窍门。 UIViewContr
注意!!!1public typealias NextFlowItems = FlowContributors原文RxFlow Part 2: In Pract
原文RxFlow Part 1: In Theory这篇是该系列文章的第一篇,该篇也是该系列文章的核心。我会介绍 RxFlow :它是一个我基于 iOS App
引用源码:objc4思考:问自己的问题实例对象,类对象,元类对象之间的关系对象的属性&方法是怎么传的对象方法是如何查询的oc 的消息机制是什么样的这些理
smallTalk 中 Metaclass 的 7个要素object 是 class 的实例class 最终继承自 objectclass 是 metaclas
flex-container 属性demoflex-item 属性demo 基础&术语main axis - flex container 主轴,fle
TCP/IP TCP/IP 三次握手http 是基于 TCP/IP 协议,双全工为什么要3次握手?最简单的回答,后一个次握手都是确定前一次握手的接受成功!除了第
当给类添加方法的时候,一般会想到使用 category,给类添加方法oc 的在runtime 的时候 分类是如何加载的查看 objc 源码调用过程objc-os
为什么要有 ShapeLayer?因为平常开发中 主要是 矩形的绘制,很少用到其他多边形的(一般都用图片代替)使用 ShapeLayer,通过 path 来定义
原文 Auto Layout and Views that Wrap理解包裹文本和其他流动布局。在视屏中,盒子里的面,当container resized 的时
什么是离屏渲染?他对性能有什么影响?如何避免离屏渲染? iOS 渲染如果想要了解离屏渲染,应该先知道iOS渲染框架是什么样的。让屏幕页面流畅应该保证页面刷新率为
本文主要以翻译为主,有翻译or理解错的地方请提出,3Q 使用 RunLoop 对象Apple 框架中是如何描述 RunLoop 的:框架RunLoop线程安全C
带着问题思考 QuestionsRunLoop 他是什么?RunLoop 结构是什么样的?为什么要是这样的结构,其他的样子不可以吗?RunLoop 内部分析?系
字典NSDictionary,NSMutableDictionaryNSMapTable:可以自定义 key,value 的引用类型NSCache:内存不足时,
概念概念:把一个个的横切关注点(某种业务的实现代码)放到某个模块中去,称之为切面。每个切面影响业务的一种功能,切面的目的就是为了功能增强,将需要增强的方法做成切
SDWebImage源码框架架构的主要目的是为了将项目模块化,分层,把代码解耦从而提高代码的复用而 SDWebImage 异步下载并支持缓存,图片编码解码的框架
BlocksKit 能做什么为集合类型添加 bk_each: 等函数方法对集合中元素快速遍历block 对 NSObject 的封装AssociatedObje
Method swizzling 的作用他是一种 交换指针指向 的技术Method swizzling 用于改变一个已经存在的 selector 的实现。在运行
iOS系统为了保证系统安全,通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。在沙盒机制下,每个程序之间的文件夹不能互相访问。DocumentsLibr
基本实现注意点CollectionView 在呈现的数据和用于呈现该数据的视觉元素之间保持严格的区分(view + layout)。基本使用的过程:自己的布局对
#、##、__VA_ARGS__和##__VA_ARGS__的作用 #用来把参数转换成字符串实例1123456789#define P(A) printf("%
分析源码:分析源码前想想怎么看源码:目的:这个第三方库,他是为了解决什么问题的?技术起源:效果实现的核心技术是什么?设计模式:整体结构是什么样的?该怎么入手:由
View 和 Window 架构 View 结构基础layer 管理 view 辅助存储器,处理view 相关的动画。 View 层级和子view 管理 Vie
WWDC 2015Developer ToolsProtocol-Oriented Programming in SwiftSession 408 Class面
学习目的知道 rac 都有什么知道他们都怎么用知道为什么有这些东西根类归纳整理如何自己扩展适当分析源码 主要概念信号信号变换&组合订阅(绑定)取消订阅R
一、进程间的通信方式 管道( pipe )管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
怎么读这个库是用来干嘛?子模块都有什么,子模块都干了什么?画出模块草图核心类有哪些,把核心类的依赖关系用 UML图表示出来分析每个子模块,想想使用了什么技术实现
可以直接看 objccn.io 的这篇自定义控件控件渲染方式控件交互方式optional 数据源 视图层次概览12345UIResponder ↑ UIView
尺寸要求Apple Doc屏幕尺寸横屏快照尺寸竖屏快照尺寸3.5寸960 * 640640*9604寸1136*640640*11364.7寸1334*7507