
IOS开发-底层
阿飞小伙子_blogs
这个作者很懒,什么都没留下…
展开
-
ReactiveCocoa使用详解-1
ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的函数式响应式编程框架,它提供了一系列用来组合和转换值流的 API一. 什么是响应式变成思想?学习一个框架之前, 首先要了解这个框架的编程思想, 这里在介绍响应式编程思想之前, 先介绍一下之前接触过的编程思想1.面向对象万物皆对象是一类以对象作为基本程序结构单位的程序设计语言典型的面向对象的编程...原创 2020-02-04 21:34:53 · 282 阅读 · 0 评论 -
iOS图像显示原理
该文章是在看到的一篇公众号文章,拿过来总结分享一下一、图像显示各组件分工:CPU:计算视图frame,图片解码,绘制纹理交给GPU。GPU:纹理混合,顶点变换,渲染到帧缓冲区。时钟信号:垂直同步信号V-Sync / 水平同步信号H-Sync。iOS设备双缓冲机制:前/后帧缓冲区。CRT:阴极电子枪发射电子,在阴极高电压的作用下,电子由电子枪射向荧光屏,使荧光粉发光,将图...转载 2019-05-10 10:51:15 · 664 阅读 · 0 评论 -
UINavigationController使用详解
一、假装一本正经的概括一下UINavigationController用来管理视图控制器,在多视图控制器中常用。它以栈的形式管理视图控制器,管理视图控制器的个数理论上不受限制(实际受内存限制),push和pop方法来弹入弹出控制器,最多只能显示一个视图控制器,那就是处于栈顶的视图控制器。一般情况下,UINavigationController最少管理一个控制器,即最少有一个根视图控制器...原创 2019-05-10 10:43:17 · 415 阅读 · 0 评论 -
IOS NSDictionary原理
写在前面关于NSDictionary,是日常开发中经常用到的空间,但是关于它的实现原理,很少去研究。在这里做一个总结字典的底层实现还是依靠HashMap,HashMap 的本质上市 数组 + 链表HashMap1、HashMap的实现HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。HashMap的主干是一个Entry数组HashMap...原创 2019-06-02 01:04:44 · 801 阅读 · 0 评论 -
IOS多线程
1、进程与线程1.1 进程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内1.2 线程1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程,称为主线程)一个进程(程序)的所有任务都在线程中执行1.3 进程和线程的比较1.线程是CPU调用(执行任务)的最小单位。2.进程是CPU分配资源的最小单位。3.一个进...原创 2019-06-02 16:24:11 · 1449 阅读 · 0 评论 -
IOS开发定时器
写在前头在开发过程中,总是会遇到这样的需求:循环更新、处理,延时处理等事件。在这里总结了一些常用的延时和按时更新的用法dispatch_afterdispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ ...原创 2019-06-14 23:39:08 · 868 阅读 · 0 评论 -
关于Class
Class 的含义typedef struct objc_class *Class; typedef struct objc_object { Class isa; } *id; typedef struct objc_selector *SEL; typedef id (*IMP)(id, SEL, ...);Class 被定义为一个指向 objc_c...原创 2019-06-24 09:25:43 · 236 阅读 · 0 评论 -
+ (void)load和 + (void)initialize
+ initialize和 + load是 NSObject 类的两个类方法,它们会在运行时自动调用,我们可以利用其特性做一些初始化操作。initialize和load的区别在于:load是只要类所在文件被引用就会被调用,而initialize是在类或者其子类的第一个方法被调用前调用。所以如果类没有被引用进项目,就不会有load调用;但即使类文件被引用进来,但是没有使用,那么initialize...原创 2019-07-10 16:56:17 · 370 阅读 · 0 评论