首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
暮暮哟
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
37
文章 35
沸点 2
赞
37
返回
|
搜索文章
赞
文章( 35 )
沸点( 2 )
移动端开发新趋势Flutter
Flutter是Google开发的新一代跨平台方案,Flutter可以实现写一份代码同时运行在iOS和Android设备上,并且提供很好的性能体验。
深入理解Flutter多线程
Flutter默认是单线程任务处理的,如果不开启新的线程,任务默认在主线程中处理。 和iOS应用很像,在Dart的线程中也存在事件循环和消息队列的概念,但在Dart中线程叫做isolate。应用程序启动后,开始执行main函数并运行main isolate。 每个isolate…
Flutter移动端实战手册
在进行iOS和Flutter的混编时,iOS比Android的接入方式略复杂,但也还好。现在市面上有不少接入Flutter的方案,但大多数都是千篇一律相互抄的,没什么意义。 进行Flutter混编之前,有一些必要的文件。 xcode_backend.sh文件,在配置flutte…
探秘Runtime - 剖析Runtime结构体
在OC1.0中,Runtime很多定义都写在NSObject.h文件中,如果之前研究过Runtime的同学可以应该见过下面的定义,定义了一些基础的信息。 之前的Runtime结构也比较简单,都是一些很直接的结构体定义,现在新版的Runtime在操作的时候,各种地址偏移操作和位运…
探秘Runtime - Runtime介绍
OC语言是一门动态语言,会将程序的一些决定工作从编译期推迟到运行期。 由于OC语言运行时的特性,所以其不只需要依赖编译器,还需要依赖运行时环境。 OC语言在编译期都会被编译为C语言的Runtime代码,二进制执行过程中执行的都是C语言代码。而OC的类本质上都是结构体,在编译时都…
探秘Runtime - Runtime源码分析
本文基于objc-723版本,在Apple Github和Apple OpenSource上有源码,但是需要自己编译。 重点来了~,可以到我的Github上下载编译好的源码,源码中已经写了大量的注释,方便读者研究。(如果觉得还不错,各位大佬麻烦点个Star😁) 在对象初始化的…
探秘Runtime - Runtime加载过程
在iOS程序中会用到很多系统的动态库,这些动态库都是动态加载的。所有iOS程序共用一套系统动态库,在程序开始运行时才会开始链接动态库。 除了在项目设置里显式出现的动态库外,还会有一些隐式存在的动态库。例如objc和Runtime所属的libobjc.dyld和libSystem…
探秘Runtime - Runtime消息发送机制
在OC中方法调用是通过Runtime实现的,Runtime进行方法调用本质上是发送消息,通过objc_msgSend()函数进行消息发送。 例如下面的OC代码会被转换为Runtime代码。 发送消息的第二个参数是一个SEL类型的参数,在项目里经常会出现,不同的类定义了相同的方法…
探秘Runtime - 深入剖析Category
有了之前Runtime的基础,一些内部实现就很好理解了。在OC中可以通过Category添加属性、方法、协议,在Runtime中Class和Category都是通过结构体实现的。 和Category语法很相似的还有Extension,二者的区别在于,Extension在编译期就…
探秘Runtime - Runtime Message Forward
当一个对象的方法被调用时,首先在对象所属的类中查找方法列表,如果当前类中没有则向父类查找,一直找到根类NSObject。 当一个方法没有实现时,也就是在cache lsit和其继承关系的method list中,没有找到对应的方法。 可以通过重写resolveInstanceM…
下一页
关注了
1
关注者
0
收藏集
0
关注标签
0
加入于
2023-04-02