首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
呆萌的小媛
掘友等级
iOS开发工程师
一枚磕磕碰碰向前的小媛
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
77
文章 67
沸点 10
赞
77
返回
|
搜索文章
赞
文章( 67 )
沸点( 10 )
Xcode运行出现you don’t have permission to view it的原因及解决方案
前不久,群里的好几个小伙伴出现了这个问题,都是老项目升级到Xcode12出现的问题。 找到显示的路径并显示包内容,结果没有执行文件。Xcode并没有生成可执行文件,我第一反应就是arch那块设置出了问题 EXCLUDED_ARCHS是Xcode12新出的字段,表示的是你不要编译…
Swift的中间文件:Swift Intermediate Language(简称SIL)
这样生成的项目只有一个main.swift文件,不会含有其他的干扰项。 我们可以从SIL中看到一些奇怪无规律的名字,例如:s4main6personAA7TeacherCvp。这其实是swift采用了名字重整技术,swift中的类名、方法名等会被重整,这样可以实现方法的重载,更…
初次探索SIL文件
生成SIL的文章上次已经讲过,我们这次简单分析下SIL文件。在main.swift中输入和上次一样的代码: 每个程序的开始都是main函数,swift也不例外,但是swift中的main函数被隐藏了,main.swift文件就代表了整个main函数,在文件里写的代码会在main…
探索Swift中Class的大致结构
通过上一篇文章我们知道,swift中分配类内存空间调用的是这个方法,这个时候我们查看swift的源码,看该方法是如何实现的。 我们在HeapObject.cpp文件中找到该函数的实现,我们设一个断点在方法里面,运行下源码。 我们看到在初始化的时候,进入了swift_allocO…
Swift引用计数的底层分析
学过swift的基础语法,我们知道类对象有3种引用方式:强引用(strong)、弱引用(weak)、无主引用(unowned)。 我们从上篇文章探索Swift中Class的大致结构,了解了引用计数存放的位置。我们现在写一个小Demo,来看下引用计数的变化: 从1到2到3,可能还…
Swift中的指针
一般来说,Swift是一门非常安全的语言,平时做业务的时候,基本上用的结构体,类等,都不会直接操作内存,而且有可选值的包装,也保证了值的安全。但是也有一些比较特殊的业务需要用到指针,比如与底层C的交互,字节流的解析等。这时候,Swift将会变得没那么安全,需要我们小心翼翼的操作…
初探Swift底层Metadata
本文将会初次探索Swift底层,但随着Swift版本更新,底层结构可能会变动(ABI已经稳定,即使调整,应该也是微调),所以在这边记录下版本号。 本文会初步探索Metadata,详细的底层结构会在文章末尾附上链接。 由于比较深入底层,会有较多指针类型,如果你不是很熟悉Swift…
Swift结构体底层StructMetadata
我们通过上一篇文章可以知道,Struct通过Mirror解析发现,Struct的type本质就是StructMetadata。 我们上来先嗨一下,提高点兴致,后面读源码有点枯燥。 里面的Teacher类可以替成换自己的类,也可以增加替换属性,里面的注释已经写的很详细了。 有关于…
Swift原生类底层ClassMetadata
ClassMetadata在底层源码代码有点多,所以会挑一些注意点,或者理解起来难度的地方写。一些比较基础的就跳过了,因为全写有点多。我前面写过一篇StructMetadata,会简单点,还有些相同的内容。 同样,ClassMetadata我也翻译成Swift代码实现了一遍,附…
探索Swift中Array的底层实现
很显然,从定义上来看,Array是一个struct类型,那也就是值类型了。 在Array中真的只有一个属性_buffer,_buffer在_runtime(_ObjC)下是_ArrayBuffer,否则是_ContiguousArrayBuffer。在苹果的设备下应该都是兼容O…
下一页
关注了
23
关注者
10
收藏集
2
关注标签
54
加入于
2016-08-25