首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Swift开发知识集
Bel李玉
创建于2022-02-06
订阅专栏
记录Swift开发的相关知识
等 13 人订阅
共13篇文章
创建于2022-02-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
深入理解Swift中的引用计数
我正在参与[掘金创作者训练营第4期](https://juejin.cn/post/7064192649523101726点击了解活动详情,一起学习吧! 在iOS开发中,`OC`和`Swift`都是
超实用~使用Xcode编译Swift源码
使用xcode编译Swift源码,来理解`Swift`语言的工作原理。网上有许多使用`Nijia`编译`Swift`源码的文章,通过查看苹果官网和实践。
在Swift里安全管理指针
「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」 在 《不安全的Swift》一文中,我们介绍了,不安全的定义和Swift不安全缓冲区指针的使用,并介绍了Swift中,un
Xcode13对Swift对象生命周期的优化
在Xcode13中,在 Build Setting中,新增了 Optimize Object Lifetimes编译选项,
Swift并发编程async/await
「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」 使用过ES6或者Dart开发的朋友应该对使用async await进行异步编程比较熟悉,在iOS中,随着Xcode 13和
不安全的Swift
安全与不安全 在文章的开始,我们先来明确下什么是安全和不安全,安全和不安全在接口设计上的区别并不明显,最大的区别在于实现处理无效输入的方式。在Swift标准库中,只有一小部分被明确标记为“不安全”(下
Swift编解码Codable协议
1,自定义对象,遵守Codable协议。 2,初始化JSONDecoder对象,将 json数据进行序列化,然后进行解码。 这样我们就可以将 dict里面的键值对映射到 LYPerson对象中了。 1,初始化了一个JSONDecoder对象。 2,调用 decode<…
Swift枚举
输出结果和我们预想的差不多,输出一个字符串 Mon。 1,我们可以看到 rawValue是一个getter方法。 2,通过switch_enum,来对 枚举值进行判断。 bb1: 在编译器,编译器就生成了 “Mon”字符串,存放在 MachO文件的__text段, 当匹配到是 …
Swift指针
swift中的指针分为两类,typed pointer:指定数据类型指针,其表示为UnsafePointer<T>,raw pointer未指定数据类型的指针(原生指针),其表示为UnsafePointer。 1,分配了 32 字节大小的空间,8字节对齐。 2,每次移…
Swift 类的方法调度
Swfit结构体一文中我们介绍了,结构体方法的调度,接下来我们来探索swift中类对象方法调度。 vtable中存储了所有的实例方法,包括属性的 getter和setter方法。 从SIL文件,我们可以看出 实例对象的所有方法都存放在vtable中。 1,通过for循环,从 i…
Swfit结构体
本文主要来介绍 swift中结构体的一些性质。 从 构造方法来讲,结构体会默认生成一个包含所有属性的构造方法,类则不会。通过SIL文件我们也可以看出来 Person 结构体有一个默认的初始化方法,Animal 类则没有默认的初始化方法。 0x0000000000000012 就…
Swift属性
在这里 0x10062fcc0就是我们 实例对象p的HeapObject的地址。 存储属性是会占用当前实例对象的内存。 我们知道,swift对象默认的大小为16,在Square类中,width属性为Int类型为8字节,对于计算属性来说,它是不占用实例对象内存空间的。 对于 计算…
Swift对象
接下来,我们想要研究的是,这个默认初始化器到底做了一个什么样的操作,在这里我们引入 SIL(Swift intermediate language),在来阅读SIL的代码之前,我们先来了解一下什么是SIL. iOS开发的语言不管是OC还是Swift后端都是通过LLVM进行编译的…