
iOS 原理集合
@福者
曾研究银行技术部,奇虎360,字节跳动......等工作。研究技术已经是生活中不可缺少快乐,
展开
-
iOS NSDictionary(字典)~实现原理
联系人:石虎 QQ:1224614774 昵称: 嗡嘛呢叭咪哄 QQ群:807236138 群称: iOS 技术交流学习群 一、NSDictionary使用原理 1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash函数设计的好坏影响着数据的查找访问效率。 -...原创 2017-11-06 09:34:21 · 8710 阅读 · 0 评论 -
iOS 真机模拟内存警告
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、概念1.内存警告原理 *iphone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。 *app收到Memory W原创 2018-02-04 10:41:57 · 2551 阅读 · 1 评论 -
iOS 模拟内存优化
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、概念 low-memory 处理思路 通常一个应用程序会包含多个view controllers,当从view跳转到另一个view时,之前的view只是不可见状态,并不会立即被清理掉,而是保存在内存中,以便下一次的快速显现。但是如果应用程序接收到系统发出的low-memory war原创 2018-02-05 13:14:32 · 334 阅读 · 0 评论 -
iOS Bitcode编译器编译的过程原理
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、概念 1.为了更好的理解什么是 Bitcode,我们简短的看一下编译器编译的过程: * Lexer :读入源文件,并将其转化成字符流。 * Parser :将字符流转换成 AST(抽象语法树)。 * Semantic Analysis :对输入的 AST 进原创 2018-01-29 17:49:45 · 618 阅读 · 0 评论 -
iOS Xcode 的汇编模式切换
联系人:石虎 QQ:1224614774 昵称: 嗡嘛呢叭咪哄 QQ群:807236138 群称: iOS 技术交流学习群 一、概念 1.汇编指令 : 模拟器上运行的是Intel指令,而真机上运行的是arm指令, 2.每条汇编指令的格式总是由: 操作码, 操作数1,操作数2,操作数3组成。 操作数要么就是常数,要么就是寄存储...原创 2018-02-28 18:02:36 · 2462 阅读 · 0 评论 -
iOS Objective-C 消息机制原理
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、OC 消息机制原理/**注意点: 1.在 OC 中,message与方法是在执行阶段绑定的,而不是编译阶段。 2.可以说 [a func] 这样一个调用,在编译阶段,编译器并不知道 func 要执行哪段代码。 3.[a func]会被转换为 objc_msgSend(a, "someFunc"),字面的意思...原创 2017-08-19 11:37:54 · 425 阅读 · 0 评论 -
iOS blcok原理
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、blcok概念block:可以理解为匿名的函数,就是预先准备好的一段代码,在需要的时候调用。二、底层实现1.block是一个指针结构体,在终端下通过clang -rewrite-objc 指令看看C++代码。 利用终端编译生成C++代码: clang -rewrite-objc main.m2.几个重要的结构体和函数简...原创 2017-08-27 23:21:11 · 960 阅读 · 0 评论 -
iOS 24种设计模式~原理图
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、24种设计模式原理图图1:单列模式图2:代理模式图3:备忘录模式图4:策略模式图5:抽象工厂模式图6:迭代器模式图7:访问者模式图8:工厂方法模式图9:简单工厂模式图10:观察者模式图11:建造者模式图12:解释器模式图13:命令模式图14:模板方法模式图15:桥接模式图16:适配器模式图17:外观模式图18:享元模式图19:原...原创 2017-09-06 22:22:55 · 587 阅读 · 0 评论 -
iOS HOOK实现
联系人:石虎 QQ:1224614774 昵称: 嗡嘛呢叭咪哄 QQ群:807236138 群称: iOS 技术交流学习群 一、概念 HOOK,中文译为“挂钩”或“钩子”。在iOS逆向中是指改变程序运行流程的一种技术。通过hook可以让别人的程序执行自己所写的代码。在逆向中经常使用这种技术。所以在学习过程中,我们...原创 2018-10-29 19:39:55 · 6428 阅读 · 0 评论 -
iOS 内存管理~深浅拷贝~引用计数器
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄一、拷贝引用计数器浅copy,类似strong,持有原始对象的指针,会使retainCount加一。深copy,会创建一个新的对象,不会对原始对象的retainCount变化。二、代码实现测试// 也许你会疑问arc下如何访问retainCount属性,原创 2017-09-09 21:43:08 · 1625 阅读 · 0 评论 -
iOS OC方法查找顺序~原理
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪一、概念 1.给实例对象消息的过程(调用对象方法) 根据对象的isA指针去该对象的类方法中查找,如果找到了就执行 如果没有找到,就去该类的父类类对象中查找 如果没有找到就一直往上找,直到根类(NSObject) 如果都没有找到就报原创 2018-01-09 10:34:02 · 1367 阅读 · 0 评论 -
iOS 观察者模式~优缺点、使用场景
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄 一、观察者模式优点: 1.观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体观察者列表,每一个具体观察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口。由于被观察者和观察者没有紧密地耦合在一起,因此它们可以属于不同的抽象...原创 2017-12-08 11:06:58 · 760 阅读 · 0 评论 -
iOS KVC 是怎么通过value查找key的
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、概念 1.ios获取字典里的内容并不区分它到底是什么类型(数组、字符、字典等等; 2.它就是一个容器。往里面保存东西的时候,用setValue:forKey:或者setObject:forKey:。 3.就是给你所要保存的对象(value),起一个名字(key),然后set原创 2017-12-09 18:18:23 · 1313 阅读 · 0 评论 -
iOS - (void)setValue:(id)value forKey:(NSString *)key方法,实现原理
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、概念 - (void)setValue:(id)value forKey:(NSString *)key方法,实现原理 功能:使用一个字符串标示符给一个对象的属性赋值.它支持普通对象和集合对象 这个方法的默认实现如下: (1).原创 2017-12-13 10:19:48 · 1370 阅读 · 0 评论 -
iOS self、super底层实现原理
一、 self和super区别 1. self是类,super是预编译指令 2. self调用自己方法,super调用父类方法 3.【self class】和【super class】输出是一样的 二、self和super底层实现原理 1、当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,原创 2018-01-04 10:07:21 · 713 阅读 · 0 评论 -
iOS SEL~存储位置、原理
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、概念 1.SEL类型是OC中用来定义方法的关键字,和其他语言不同的是SEL类型虽然是方法定义,但却不从属于任何类实例,其值是通过@selector进行计算,可以把它当做一个函数指针来使用,当然它实际上并不是一个函数指针,而是constchar*。 2.SEL类型可以在编译时通过@原创 2018-01-14 11:50:35 · 379 阅读 · 0 评论 -
iOS OC中分类Category实现原理
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄 一、概念 1.前言 category是Objective-C 2.0之后添加的语言特性, category的主要作用是为已经存在的类添加方法。 2.设计思想 Objective-C 中的 Category 就是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前提下,动态地给这个类添加...原创 2018-01-31 10:49:44 · 3291 阅读 · 1 评论 -
iOS ARM处理器指令集 、i386、Architectures设置
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、概念 i386是代表模拟器:显示i386错误说明静态库不支持模拟器,只支持真机。 1、ARM ARM处理器,特点是体积小、低功耗、低成本、高性能,所以几乎所有手机处理器都基于ARM,在嵌入式系统中应用广泛。 2、ARM处理器指令集 a原创 2018-01-24 10:15:29 · 783 阅读 · 1 评论 -
iOS TCP为什么要三次握手,TCP为什么可靠, TCP原理
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄一、为什么不能两次握手: 答:(防止已失效的连接请求又传送到服务器端,因而产生错误) 假设:改为两次握手,client端发送的一个连接请求在服务器滞留了,这个连接请求是无效的,client已经是closed的状态了,而服务器认为client想要建立一个新的连接,于是向client发送确认原创 2018-02-01 10:24:34 · 1692 阅读 · 0 评论 -
iOS 安全锁原理集合
联系人:石虎 QQ:1224614774 昵称: 嗡嘛呢叭咪哄 QQ群:807236138 群称: iOS 技术交流学习群 一、概念我们在使用多线程的时候多个线程可能会访问同一块资源,这样就很容易引发数据错乱和数据安全等问题,这时候就需要我们保证每次只有一个线程访问这一块资源,锁 应运而生。效率图: 二、...原创 2018-11-14 19:58:02 · 2055 阅读 · 0 评论