方法的查找流程——慢速查找

对象原理探究(一) 对象原理探究(二) OC类的原理探究(一) OC类的原理探究(二)——方法的缓存 方法的查找流程——快速查找 我们看这样一个例子: 在NSObject的分类(NSObject+LG)里面...

2021/02/14 07:02
12
方法的查找流程——快速查找

对象原理探究(一) 对象原理探究(二) OC类的原理探究(一) OC类的原理探究(二)——方法的缓存 首先来看段代码: - (void)viewDidLoad { [super viewDidLoad]; Norman *norman1 = [[Nor...

OC类的原理探究(二)——方法的缓存

对象原理探究(一) 对象原理探究(二) OC类的原理探究(一) objc_alloc的分析 运行时,alloc方法流程分析 int main(int argc, const char * argv[]) { @autoreleasepool { // insert cod...

2021/02/12 08:20
77
OC类的原理探究(一)

对象原理探究(一) 对象原理探究(二) 前面两篇文章介绍了OC对象的原理,以及一些分析的思路和方法,今天开始,将开启类的原理探究。 不过在探究类的原理之前,我想补充说明一个东西 isa指...

2021/02/08 18:10
39
对象原理探究(二)

对象原理探究(一) 内存对齐的原则 1,系统定义的数据成员的对齐规则: 结构体(struct)或者联合体(union)的数据成员,第一个数据成员会放在offset为0的地方,之后的每个数据成员存储的起...

2021/02/07 14:00
28
Swift进阶八——泛型

之前在文章Swift基础语法(三)中有介绍过泛型,本文是对之前介绍的补充。 定义泛型函数: func swapTwoValues<T>(_ a: inout T, _ b: inout T) { let temporatyA = a a = b b = temporatyA}...

2021/01/24 17:00
63
Swift进阶七——面向对象编程

面向对象编程(OOP,Object Oriented Programing)有三大特性: 继承 封装 多态 在Swift中,面向对象的基本单元如下: 枚举 结构体 类 协议 扩展 枚举 在Swift中,枚举与类、结构体具有完全平...

Swift进阶六——函数和闭包

函数 形参和实参 形式参数,指的是是在函数的定义中,系统并没有为其分配内存空间、但是在函数里面可以使用的参数。比如下面的a就是形式参数: func play(a: Int) {} 实际参数,指的是在函数...

Swift进阶五——集合类之Set&Dictionary

Set的定义和创建 Set是指具有某种特定性质的具体的或者抽象的对象汇总而成的集体。其中,构成Set的这些对象则称为该Set的元素。 Set的三个特性: 1,确定性:给定一个集合,任给一个元素,该...

Swift进阶五——集合类之Array

在Swift中创建数组的N种方式 let array = Array(repeating: 6, count: 3)print(array) // [6, 6, 6] 使用区间初始化数组 let numbers = [Int](1..<11)print(numbers) // [1, 2, 3, 4, 5, 6, ...

2020/12/23 20:51
75
Swift进阶四——流程控制

for-in 分段区间 我们可以使用函数stride(from:, to:, by:)来跳过不想要的标记(开区间);闭区间也同样适用,使用stride(from:, through:, by:)函数即可。 开区间: 闭区间: 更加强大的Swi...

2020/12/09 22:35
22
Swift进阶三——运算符相关

赋值和算数运算符 1,Swift中的赋值运算符(=)不会返回值。 而在OC中,赋值运算符(=)是有返回值的。 如下面的写法: var a = "aaa" var b = "bbb" a = b = "ccc" 在Swift中会报错: 而同....

《Charles从入门到精通》之Charles的简介和安装

声明:《Charles从入门到精通》系列文章均参考于唐巧大神的博客,您可以点击“阅读原文”来阅读巧叔的博客~ Charles是Mac下常用的网络封包截取工具,在做移动开发的时候,我们为了调试与服务...

2020/08/19 13:29
140
Swift进阶二:基本数据类型相关

变量和常量 Swift中,使用关键字let来声明常量,使用关键字var来声明变量。 而在Objective-C中,如果没有特殊的指明,我们所声明的都是变量。可以通过如下几种方式来声明常量: 使用宏定义来...

2020/07/13 21:26
61
Swift进阶一:Swift简介

Swift和Objective-C的主要区别 1,编程范式 Swift可以面向协议编程、函数式编程、面向对象编程。 Swift语言引入了协议、协议的扩展、泛型等新特性,因此使用Swift语言可以很好地面向协议编程...

Swift基础语法(四)

Result 在Swift5之前,我们一般是采用上面的方式来处理异常,在Swift5之后,苹果推出了一个Result枚举,Result枚举可以更加优雅地去处理异常。 比如说,在iOS开发中有这样一个网络请求: le...

Swift基础语法简化版(续)

闭包 首先来看一段示例: //计算一个数的平方 //函数写法func square(a : Int) -> Int { return a * a}square(a: 6) //闭包写法let sq = { (a : Int) -> Int in return a * a}sq(6) 闭包的写...

Swift基础语法简化版

推荐一个学习网站:https://www.cnswift.org 该网站是对Swift官方文档的翻译,但不是无脑翻译,而是结合作者的开发经验,在翻译的基础上,给出一些实用的建议。 常量与变量 在Swift中规定,定...

Swift基础语法(三)

属性与方法 我们在之前讲过的类和结构体中定义的常量/变量和函数,就是所谓的属性和方法。 首先我们聊聊类中的属性。 类的属性介绍 在Swift的类中,属性分为如下三种: 存储属性:用于存储类...

一个Bug所引发的方法交换小讨论

最近鄙人在项目中接入了阿里云的移动数据分析功能,这个移动数据分析SDK中提供了统计页面出现与页面消失的接口,所以呢我就给UIViewController建了一个分类,然后在分类中复写load方法,并在...

ios
2020/06/02 08:08
22

没有更多内容

加载失败,请刷新页面