![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS底层
ZhaiAlan
iOS开发工程师
展开
-
AFNetwork 3.0 结构及功能介绍
AFN结构1.通讯核心类 1.1 AFURLSessionManager 1.2 AFHTTPSessionManager 继承于1.12.序列化类 2.1:AFURLRequestSerialization 2.1.1:AFHTTPRequestSerializer 2.1.2::AFJSONRequestSerializer 2.1.3 AFPropertyListRequestSerlizer 2.2AFURLRes...原创 2020-05-26 10:48:46 · 899 阅读 · 0 评论 -
iOS之KVC原理&自定义KVC
前言开发过程中,很多人都会注意到KVO,以及自定义KVO,实际上KVC的作用也是十分强大的,不仅仅是简单的字典转模型,有关使用技巧可以看上篇文章,这篇文章要根据上篇的总结来进行自定义KVC操作;相关代码:KVCCode(上篇代码也在这里)KVC原理实际在自定义过程中主要要注意的2大点:1.KVC设置过程,2.KVC取值过程,1.KVC赋值过程1:非空判断一下2:找到相关方法set<Key>,_set<Key>,_setIs<Key>实例方法进行原创 2020-05-21 11:39:58 · 458 阅读 · 0 评论 -
iOS之你不知道的KVC技巧&KVC原理
前言iOS开发中很多人都知道KVC ,聊到KVC大家也都知道,就是字典转模型,但是再具体聊的话,就说不太清楚了,这篇文章,准备把KVC再来了解一下; XZPerson *person = [XZPerson alloc]; person.name = @"Alan";在调用person.name 会有LLVM编译过程中统一分发给底层的void objc_setProperty_atomic(id self, SEL _cmd, id newVa.原创 2020-05-19 18:16:32 · 720 阅读 · 0 评论 -
iOS卡顿原理及优化方案
前言很多iOS 开发,都会面临到解决开发过程中的卡顿问题,从而也衍生出来很多的方法去解决卡顿问题,这篇文章来描述下iOS卡顿产生的原因,以及一部分解决办法;iOS卡顿原理1.像素是如何显示到屏幕上从最初的电子枪显示器说起,电子枪逐行读取像素点,逐行发射到屏幕上,每当一行扫描完成,显示器会发出水平同步信号HSync;然后继续下一行,直到最后一行完成一帧的绘制,电子枪恢复到起点继续下一帧的绘制,显示器会发出一个垂直同步信号VSync。对于iOS设备,VSync信号的间隔是16.7ms,也就是1秒原创 2020-05-14 09:47:35 · 2008 阅读 · 0 评论 -
iOS 探索KVO一(几种简单的KVO使用方式)
前言KVO全称为Key Value Observing,键值监听机制,由NSKeyValueObserving协议提供支持,NSObject类继承了该协议,所以NSObject的子类都可使用该方法。文章中的DemoKVO监听写法例如在XZPerson类中有这么几个属性@interface XZPerson : NSObject@property (nonatomic, co...原创 2020-04-28 18:02:12 · 422 阅读 · 0 评论 -
iOS源码调试
前言最近有一些小伙伴私信我,说看之前的iOS底层系列文章中,下载的objc4_752源码不能使用,这里需要给大家解释一波修改方法1.在使用objc4_752源码源码时,注意签名改成自己的代码签名2.选择版本需要在target 版本10.143.添加系统库libobjc.A.dylib ,可以进入源码调试4.最近发现使用xcode11可能会导致崩溃但是xcode10 可以...原创 2020-04-24 14:07:51 · 655 阅读 · 0 评论 -
iOS优美的内存管理
前言相关代码:工程Demo内存管理这篇文章主要会从内存布局,内存管理方案,ARC&MRC ,引用计数,弱引用,以及自动释放池这几个方面来进行详细的介绍;内存布局,五大区程序加载到内存中会被分开为几个区:内存地址从高到低分别是:内核区内核区:系统内核处理大小一般为1G stack(栈区):存储函数, 方法,常量等, 地址从高到低;(0x7,大概地址) he...原创 2020-03-25 16:40:41 · 269 阅读 · 0 评论 -
iOS底层探索十(方法的本质下-消息转发流程)
前言相关文章iOS底层探索二(OC 中 alloc 方法 初探)iOS底层探索三(内存对齐与calloc分析)iOS底层探索四(isa初探-联合体,位域,内存优化) iOS底层探索五(isa与类的关系)iOS底层探索六(类的分析上)iOS底层探索七(类的分析下)iOS底层探索八(方法本质上)iOS底层探索九(方法的本质下objc_msgSend慢...原创 2020-03-23 17:25:48 · 439 阅读 · 0 评论 -
iOS底层探索九(方法的本质中--objc_msgSend慢速及方法转发初探)
前言相关文章 iOS底层探索二(OC 中 alloc 方法 初探) iOS底层探索三(内存对齐与calloc分析)iOS底层探索四(isa初探-联合体,位域,内存优化) iOS底层探索五(isa与类的关系)iOS底层探索六(类的分析上)iOS底层探索七(类的分析下)iOS底层探索八(方法本质上) 相关代码: ...原创 2020-03-20 17:18:34 · 537 阅读 · 0 评论 -
iOS开发优化的起步之启动优化
前言作为开发人员,启动是App给用户的第一印象,对用户体验至关重要。任何开发的APP的业务迭代迅速,如果放任不管,启动速度会一点点劣化。为此iOS客户端团队做了大量优化工作,除了传统的修改业务代码方式,我们还做了些开拓性的探索,首先我们需要考虑的是,应用启动分为2种情况:冷启动:指 app 被后台杀死后,在这个状态打开 app,这种启动方式叫做冷启动,根据测试结果并非是杀掉进程后直接启动,...原创 2020-03-20 17:18:51 · 751 阅读 · 0 评论 -
iOS 面试题(iskindof)
这篇文章我们对面试题题目是这样的:相关源码:objc4_752源码isa走位图:int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... BOOL re1 = [(id)[NSObject class] isKindOfC...原创 2020-03-12 16:35:16 · 410 阅读 · 0 评论 -
iOS底层探索八(方法本质上)
前言相关文章: iOS底层探索一(底层探索方法) iOS底层探索二(OC 中 alloc 方法 初探) iOS底层探索三(内存对齐与calloc分析)iOS底层探索四(isa初探-联合体,位域,内存优化) iOS底层探索五(isa与类的关系)iOS底层探索六(类的分析上) 相关代...原创 2020-03-12 15:12:31 · 432 阅读 · 0 评论 -
iOS底层探索七(类的分析下)
前言相关文章: iOS底层探索一(底层探索方法) iOS底层探索二(OC 中 alloc 方法 初探) iOS底层探索三(内存对齐与calloc分析)iOS底层探索四(isa初探-联合体,位域,内存优化) iOS底层探索五(isa与类的关系)iOS底层探索六(类的分析上) 相关代...原创 2020-03-11 16:50:24 · 360 阅读 · 0 评论 -
iOS底层探索六(类的分析上)
前言相关文章:iOS底层探索一(底层探索方法) iOS底层探索二(OC 中 alloc 方法 初探) iOS底层探索三(内存对齐与calloc分析) iOS底层探索五(isa与类的关系) 相关代码: objc4_752源码 前几篇文章对alloc方法和...原创 2020-03-10 18:04:36 · 309 阅读 · 0 评论 -
iOS底层探索五(isa与类的关系)
前言相关文章:iOS底层探索一(底层探索方法) iOS底层探索二(OC 中 alloc 方法 初探) iOS底层探索三(内存对齐与calloc分析) iOS底层探索四(isa初探-联合体,位域,内存优化) 相关代码: objc4_752源码 isa_objec...原创 2020-03-09 16:10:42 · 665 阅读 · 2 评论 -
iOS底层探索四(isa初探-联合体,位域,内存优化)
前言相关文章:iOS底层探索一(底层探索方法) iOS底层探索二(OC 中 alloc 方法 初探) iOS底层探索三(内存对齐与calloc分析) 相关代码: objc4_752源码 UnionDomain 前几篇文章对alloc方法进行了初步探究...原创 2020-03-06 17:05:20 · 929 阅读 · 0 评论 -
iOS底层探索三(内存对齐与calloc分析)
前言相关文章:iOS底层探索一(底层探索方法) iOS底层探索二(OC 中 alloc 方法 初探) 前两篇文章对alloc方法进行了初步探究但是到calloc方法发现,这个方法在另一个库中,这边文章描述下内存对齐,并对calloc进行继续探究内存对齐原则进行说明首先我们需要知道为什么系统要进行内存对齐,CPU每次从内存...原创 2020-03-05 17:38:48 · 535 阅读 · 0 评论 -
iOS底层探索二(OC 中 alloc 方法 初探)
前言 开发中我们经常会用到XZPerson *p= [[XZPerson alloc]init],我们只知道,这样我们就新建了一个对象,可以直接使用这个对象,可以对这个对象进行赋值使用,但是我们没有关心过alloc方法底层到底是通过什么方式进行实现的;今天我准备对alloc方法进行一次尝试性底层挖掘;首先我们需要先准备一份可编译的objc4_756代码,可以直接进行下载探索...原创 2020-03-03 15:50:15 · 854 阅读 · 2 评论 -
lldb调试命令一
1.什么是LLDB LLDB是英文Low Lever Debug的缩写,是XCode内置的为我们开发者提供的调试工具;方便开发者对开发问题进行快速有效的解决;2.LLDB 断点设置新建一个Object-C工程,写了下方代码,给一个 OC 方法下断点,运行工程,就可以进入LLDB调试环境1、使用LLDB中“breakpoint set -n 函数名 ”下断点...原创 2020-03-02 11:40:52 · 1262 阅读 · 0 评论 -
iOS底层探索一(底层探索方法)
前言 作为iOS开发,看底层源码基本是必须的,但是很多人都想看源码,但是入门无路,所以在进行底层探索之前,先介绍一篇文章来描述一下我一般是怎么要找底层源码的。探索底层源码出处: 下断点 : control + in 符号断点设置:例如alloc 源码 代码跟踪 汇编探索1.断点调试设置 例如我们使用alloc代码进行下断点 : control + i...原创 2020-02-28 16:51:06 · 588 阅读 · 0 评论