-
前言iOS代码量的统计,其实就是代码 行数 的统计,其中你自己写的代码 不包括 用 pods 集成第三方 库的`代码。
行数统计方式
【方法一】:查看每一行的行数,再得出总行数,其中不包括空行,但是包括注释。
【方法二】:直接查看总行数,没有...
-
前言本章主要的目的是分析 类 和 类结构
objc_class 和 objc_object为什么 对象 和 类 都有 isa指针?
在 iOS-OC底层原理08:isa和类关联探索 中,使用 clang 编译过 main.m 文件,从编译后的 ma...
-
本文的主要目的是分析 isa走向 和 继承 的分析
准备工作定义两个类 :
继承自 NSObject 的 ZJPerson 类
1234@interface ZJPerson : NSObject@end@implementation ZJPer...
-
Gitee由于入职新公司:中国图书进出口集团总公司,领导要求使用 码云,即 Gitee,所以我也用了这个代码管理平台,使用流程和其他 Github 等都差不多,流程如下:
登录gitee,新建仓库:
填写仓库信息,注意选择 内部开源
提...
-
前言本文的主要目的是理解 类与isa 是如何 关联 的
在介绍正文之前,首先需要理解一个概念:OC对象 的 本质 是什么?
在探索oc对象本质前,先了解一个编译器:clang
Clang1、介绍
Clang 是⼀个由 Apple 主导编写,基于 LL...
-
前言我们在 OC底层原理03:alloc&init&new探索 文章中,分别得知alloc最核心的三个操作:
第一个核心方法:cls->instanceSize,我们得知是申请内存大小,系统默认是 16 字节对齐。
第二个核...
-
查看内存地址的方法1、【方法一】:Debug->Debug Workflow->Alway View Memory
2、【方法二】:x 地址/x 对象
1)下面我们通过代码具体查看一下使用:
123456789101112@in...
-
前言本章主要探索继承自 NSObject 的类 ZJPerson 和 NSObject 调用 alloc 的区别
准备工作1、下载objc4-781 源码。
2、编译源码,可参考iOS-OC底层原理02:Objc4源码编译
NSObject调用all...
-
前言Optimization Level 是编译器的优化程度。比较早期的时候,硬件资源是比较缺乏的。为了 提高性能,开发编译器的大师们,都会对编译器(从c到汇编的编译过程)加上一定的优化策略。优化后的代码效率比较高,但是可读性比较差,且编译时间更长。...
-
前言
在分析alloc&init&new源码之前,我们先来看看下面的代码:
1234567891011121314- (void)viewDidLoad { [super viewDidLoad]; /...