汇编语言的特点 可以直接访问、控制各种硬件设备,比如存储器、CPU等,能最大限度地发挥硬件的功能 汇编指令是机器指令的助记符,同机器指令一一对应。每一种CPU都有自己的机器指...
汇编语言的特点 可以直接访问、控制各种硬件设备,比如存储器、CPU等,能最大限度地发挥硬件的功能 汇编指令是机器指令的助记符,同机器指令一一对应。每一种CPU都有自己的机器指...
卡顿优化 CPU和GPU(先介绍一些基本概念) 在屏幕成像的过程中,CPU和GPU起着至关重要的作用CPU:负责 对象的创建和销毁,对象属性的调整、布局计算、文本的计算和排版...
使用CADisplayLink、NSTimer有什么注意点? 循环引用问题,CADisplayLink、NSTimer会对target进行强引用,如果target又对它们产生...
iOS下的多线程方案有: pthread 一套通用的多线程API 适用于Uinx/Linux/Windows等系统 跨平台/可移植 程序员管理生命周期 语言:C NSThre...
什么是RunLoop? 顾名思义:运行循环,在程序运行过程中循环做一些事情; 每条线程都有唯一的与之对应的RunLoop对象; RunLoop保存在一个全局的Dictiona...
Objective-C是一门动态性非常强的编程语言;Objective-C的动态性是由Runtime API提供的;Runtime API提供的接口基本都是C语言的,源码由C...
block的原理是什么 block本质上是一个OC对象,它内部也有isa指针 block是封装了函数调用以及函数调用环境的OC对象 block的变量捕获 auto局部变量,捕...
树的基本概念 节点、根节点、父节点、子节点、兄弟节点一棵树可以没有任何节点,成为空树一棵树可以只有1个节点,也就是只有根节点子树、左子树、右子树 节点的度:子树的个数树的度:...
二叉搜索树(Binary Search Tree) 是应用非常广泛的一种二叉树,简称BST,又被称为二叉查找树、二叉排序树 特点如下:任意一个节点的值都大于其左子树所有节点的...
先介绍一些基本概念 主处理器(CPU):负责主要流程控制和常规计算协处理器(GPU、FPGA、ASIC等芯片):负责并行计算,速度快、低延时 FPGA(Field-Progr...
Category的实现原理 在程序编译过程后的底层结构是struct _category_t,里面包含着分类的对象方法、类方法、属性和协议信息 在程序运行过程中,runtim...
KVC:Key-Value Coding(键值编码),可以通过一个key来访问某个属性 KVC的方法有:- (void)setValue:(nullable id)value...
KVO: key-value observing(键值监听),可用于监听某个对象属性值的改变 首先我们来测试一下 通过log我们可以看到一个很奇怪的现象,添加监听之后pers...
队列是一种特殊的线性表,只能在头尾两端进行操作;先进先出的原则; 简单队列 双端队列 循环队列 循环双端队列
栈是一种特殊的线性表,只能在一端进行操作;往栈中添加元素,一般叫做push,入栈;移除元素,一般叫做pop,出栈(只能移除栈顶元素,也就是后进先出); 下面通过一个简单的例子...
动态数组有个明显的缺点,可能造成内存空间的大量浪费;能否用到多少就申请多少内存? 链表可以办到;链表是一种链式存储的线性表,所有元素的内存地址不一定是连续的; 单向链表和双向...
数据结构是计算机存储、组织数据的方式: 线性结构:线性表(数组、链表、栈、队列、哈希表)树形结构:二叉树(AVL树、红黑树、B树、堆、Tire、哈夫曼树、并查集)图形结构:临...
求第n个fibonacci number, 0 1 1 2 3 5 8 13 ... n 怎么评估上面两个算法哪个更优?1-通过计算和比较算法的执行时间 (需要编写测试代码、...
对象的isa指针指向哪里? *instance的isa指向class;当调用对象方法时,通过instance的isa找到class,最后找到对象方法的实现进行调用。*clas...
一个NSObject对象占用多少内存? 通过runtime和malloc来分析 通过代码可以知道一个NSObject对象占用内存是16字节(64位机器上); 进一步分析:首先...