首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
yxibng
掘友等级
iOS
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
58
文章 57
沸点 1
赞
58
返回
|
搜索文章
赞
文章( 57 )
沸点( 1 )
iOS 从源码解析Runtime (一):Tagged Pointer知识点解读
2013 年 9 月,苹果首次在 iOS 平台推出了搭载 64 位架构处理器的 iPhone(iPhone 5s),为了节省内存和提高运行效率,提出了 Tagged Pointer 概念。下面我们逐步分析 Tagged Pointer 的优点以及结合源码分析它的实现。在 obj…
iOS weak 底层实现原理(四):weak 变量从初始化到被置为nil 都经历了什么
在 main.m 中编写如下代码,在函数最后打断点,并打开汇编模式:debug->debug workflow->alway show disassembly。 callq 指令表示函数调用,看到与 weak 变量相关函数是: objc_initWeak、objc_storeW…
iOS weak 底层实现原理(一):SideTable、weak_table_t 结构分析
为了全面透彻的理解 weak 关键字的工作原理,现在从最底层的数据结构开始挖掘,力求构建一个完整的认知体系。
iOS RunTime 总结
RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。 class/object/method…的本质都是struct,因此在运行时也可以进行修改。 在<objc/runtime.h>中,可以找到一个叫objc_class的struct。我们看一下这…
iOS 从源码解析Runtime (二):聚焦 isa、objc_object(ISA_BITFIELD相关内容篇)
struct objc_object 和 struct objc_class 是 iOS(OC) 编写面向对象代码的基石。那今天我们就来详细的解析这两个结构体吧。 struct objc_object 的定义位于 objc-private.h。在正式开始看 objc_objec…
23个经典设计模式的Swift实现
也就是工厂问题想解决的原始问题。 从代码和UML可以看出,为了得到产品A,调用者Client要同时依赖Product, ConcreteProductA和ConcreteProductB,并亲自写一个创建产品的方法。 每当需求新增一个产品,就要改动到调用方Client。如果这一…
抖音品质建设 - iOS 安装包大小优化实践篇
客户端开发的同学都知道「安装包大小」是 App 重要的基础体验指标之一。今天将为大家介绍抖音在优化安装包大小方向做的一些探索和尝试。 一些影响包大小的编码习惯。 Part 1. 包大小劣化到底带来什么影响 要说 iOS 平台上安装包大小对 App 的影响,首先需要了解到的是 A…
使用XCFramework的注意点
此项目演示了 在同一个Xcode项目中,创建与集成xcframeworks以及静态库与Swift packages的协作。 引入标准格式以获得Swift框架和库的模块稳定性。库作者和库的使用者不再需要使用相同版本的编译器(注:应该是Swift的ABI和Module稳定化的原因了…
利用AudioQueue做音频采集编码和播放(附完整demo)
在直播应用开发中我们经常需要实时对音频做处理,比如音频录制、播放、编码等。本文介绍的是使用AudioQueue对音频做上述处理。 PCM和AAC是音频的两种不同的格式,PCM是无损音频数据,AAC是压缩编码过的数据。我们在介绍AudioQueue的用法之前,首先对音频的这两种格…
lldb常用命令与调试技巧
LLDB是个开源的内置于XCode的调试工具,它能帮助我们在开发中更快的定位和调试bug,无论正向和逆向开发中都有很大的作用。lldb对于命令的简称,是头部匹配方式,只要不混淆(不提示歧义),你可以随意简称某个命令。 单步调试通常分为两大类,一类为源码级别(source lev…
下一页
个人成就
文章被点赞
5
文章被阅读
12,773
掘力值
237
关注了
67
关注者
1
收藏集
1
关注标签
17
加入于
2018-12-22