首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Swift总结
每天写点代码
创建于2022-01-24
订阅专栏
Swift相关知识点分析
等 28 人订阅
共20篇文章
创建于2022-01-24
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Swift(二十)-枚举关联值及其大小
枚举的设计思路可以帮助我们将一些简单的同类数据进行整合,而在Swift中,枚举的使用则更加灵活,可以通过对枚举设置关联值进行灵活运用
Swift(十九)-枚举及其原始值
在Swift语言中,通过enum关键字来进行枚举的创建,在Swift语言中,枚举的使用也更加灵活,比如在Swift中可以设置枚举的关联值,递归枚举等等用法
Swift(十八)-闭包的循环引用
我们在之前讲过两个类实例之间的相互引用,如果在一个类中,其有属性是闭包,则也可能产生类与属性之间的相互引用;那么,在闭包中的循环引用应该如何解决呢?
Swift(十七)-弱引用与无主引用
弱引用 在Swift中我们通过关键字weak来表明一个弱引用;weak关键字的作用是在使用这个实例的时候并不保有此实例的引用,weak修饰的引用类型在传递时不会使引用计数加1
Swift(十六)-强引用与循环引用
在日常开发中,我们经常会对属性进行强引用,以确保在使用的时候其没有被释放销毁,那么我们在进行强引用是,系统究竟做了什么操作呢?其引用计数究竟发生了什么变化呢?
Swift(十五)-内存管理之引用计数
内存管理 Swift语言延续了和Objective-C语言一样的思路进行内存管理,都是采用引用计数的方式来管理实例的内存的;
Swift(十四)-内存绑定
在Swift中提供了三种不同的api来绑定/重新绑定指针: 1,assumingMemoryBound(to:);2,bindMemory(to: capacity:);3,withMemoryReb
Swift(十三)-Swift的指针
创建一个对象的时候,需要在堆分配内存空间。但是对象的生命周期是有限的,即内存空间的生命周期是有限的,这也就意味着如果我们使用指针指向这块内存空间,如果当前内存空间的生命周期结束了(引用计数为0),那么
Swift(十二)-类型属性&MachO的属性查找
我们在之前提到的属性实际上都是实例属性,在Swift中与之对应的还有类型属性又称为类属性。实例属性由类的实例调用,类型属性则直接由类来调用,类型属性使用static或者class关键字来声明。
Swift(十一)-Swift中的lazy
延迟存储属性 在Swift中支持将存储属性设置为延迟存储属性,所谓延迟存储属性,是指在类实例构造的时候,延迟存储属性并不进行构造或者初始化,只有当开发者调用类实例的这个属性时,此属性才会完成初始化操作
Swift(十)-属性监听器
在许多开发场景中,我们需要在对类的某些属性进行赋值时进行额外的操作。在Object-C中我们可以通过为属性实现set方法加入一下额外的逻辑。Swift中的存储属性提供了属性监听器,以便我们执行相似操作
Swift(九)-存储属性&计算属性
Swift语言中的属性从行为上可以分为存储属性和计算属性两类。存储属性和计算属性的区别在于:存储属性用于描述存储值,而计算属性用于描述计算过程并获取计算结果;
Swift(八)-函数内联
函数内联 函数内联是一种编译器优化技术,它通过使用方法的内容替换直接调用该方法,从而优化性能; Xcode中的编译器优
Swift(七)-方法调度(下)
MachO文件 MachO是Mach Object文件格式的缩写,是mac以及iOS上可执行文件的格式,类似于Windows上的PE格式,Linux上的elf格式,在mac和iOS中常见格式为.o
Swift(六)-方法调度(上)
我们都知道,在OC中方法的调用是通过objc_msgSend来发送消息的;那么在Swift中,方法的调用时如何实现的呢?今天我们就来分析一下Swift中的方法调度;
Swift(五)-异变方法
类与结构体的方法 我们知道,不管是Class还是Struct都能够自定义方法;那么Class和Struct定义的方法有没有什么区别呢? 我们分别定义一个Class和Struct,然后给他们添加同样的方
Swift(四)-对象的内存结构
通过上一篇文章针对类的SIL文件的分析,我们已经了解了在Swift中对象进行内存分配的流程,接下来我们继续分析对象的内存结构;
Swift(三)-类的SIL文件分析
iOS开发语言,不论是OC还是Swift,都是通过LLVM进行编译的,最终生成.o文件,其编译流程如下图: OC通过clang编译器,编译生成IR,然后再生成.o文件也就是我们所说的机器码
Swift(二)-类的初始化器
类的初始化器与类的构造方法是有区别的,他们都可以用来完成对象的初始化,但是构造方法具有强制性,而初始化器没有强制性;初始化器只能完成属性初始化,而构造方法可以初始化任何需要的内容;
Swift(一)-类与结构体
类是面向对象变成思想的核心,在面向对象编程思想中万物皆为对象,类便是描述对象的一种方式;在Object-C语言中,结构体只能定义属性,不能定义方法;而在Swift中,结构体可以进行属性和方法的封装;