一、符号表 1、概念:debugger Symbols 的简称。符号表就是指在Xcode项目编译后,在编译生成的.app的同级目录下生成的同名的.dSYM文件。符号表是内存地...
一、符号表 1、概念:debugger Symbols 的简称。符号表就是指在Xcode项目编译后,在编译生成的.app的同级目录下生成的同名的.dSYM文件。符号表是内存地...
Widget、Element和RenderObject Widget Widget 是用户页面的描述,表示了Element的配置信息,Flutter页面都是由各种各样的Wid...
起因 前段时间在群里看到群友发了一个油管的链接[https://www.youtube.com/watch?app=KWnnhv&v=UtOrHj83hSQ%3DcdKfd9...
设置圆角 1.ElevatedButton 设置样式需要通过buttonStyle设置buttonStyle可以设置的属性有: 这些属性在设置的属性在设置的时候需要用到Mat...
Toast在Android上是最常用的提示组件了,它的优势在于静态调用、全局显示,可以在任意你想要的地方调用他而丝毫不影响界面的布局,调用简单程度与Logger的调用不相上下...
Flutter 1.17 对比上一个稳定版本,更多是带来了性能上的提升,其中一个关键的优化点就是 Navigator 的内部逻辑,本篇将带你解密 Navigator 从 1....
背景 花了点时间分析了下libffi的调用流程,做个总结。 什么是libffi libffi是ffi的主流实现方式,其主要是用C和汇编来实现的。 原理和用法市面上已经很多,下...
什么是VM Tracker VM Tracker是Xcode Instruments自带的一个内存分析工具,可以帮助你快速查看虚拟内存块的用量状态以及根据虚拟内存块的tag进...
Git Flow 的概念 在使用Git的过程中如果没有清晰流程和规划,否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。Git版本管理同样需要一个...
本文导读:虚拟内存以及虚拟内存的remap机制,以及通过remap机制来实现通过静态指令来构造thunk代码块。 👉Thunk程序的实现原理以及在iOS中的应用 入口处。 ...
相信大家在学习C语言的时候,malloc是最早遇到的几个方法之一,这里就来深入的了解下,macOS/iOS中用户空间的内存分配。 引言 首先,我们来看几个有意思的例子,以下几...
前言 众所周知,使用runtime的提供的接口,我们可以设定原方法的 IMP ,或交换原方法和目标方法的 IMP ,以完全代替原方法的实现,或为原实现前后相当于加一段额外的代...
GCC编译器提供了 -fomit-frame-pointer 和 -fno-omt-frame-pointer 两个相对的编译选项。 GCC手册[1][#fn1]里对 -fo...
模型树和呈现树 CoreAnimation作为一个复合引擎,将不同的视图层组合在屏幕中,并且存储在图层树中,向我们展示了所有屏幕上的一切。整个过程其实经历了三个树状结构,才显...
• Source1 :基于mach_Port的,来自系统内核或者其他进程或线程的事件,可以主动唤醒休眠中的RunLoop(iOS里进程间通信开发过程中我们一般不主动使用)。m...
前言 上片文章分析了GCD队列和函数的使用方式、串行队列和并发队列的创建、同步函数和异步函数底层执行流程、串行队列的死锁、GCD单例的实现流程等。这篇文章我们继续探究disp...
一、栅栏函数 CPU的乱序执行能力让我们对多线程的安全保障的努力变得异常困难。因此要保证线程安全,阻止CPU换序是必需的。遗憾的是,现在并不存在可移植的阻止换序的方法。通常情...
当向ArrayList中添加和删除元素时都需要进行元素的移动,当添加和删除的是动态数组的头部元素,需要将数组中所有元素进行移动,其最坏情况的复杂度为O(n)。那么能不能在添加...
1. 指针类型 id是指向Objective-C对象的指针。 void *是任何东西的指针(无类型指针)。是“对带有未类型化/未知内容的随机块内存的引用”您可以使用void...
iOS中会经常使用到静态库和动态库,尤其稍大点的项目,有一些人对到底是推荐使用静态库还是动态库存在一些疑点。这里鼓励跟苹果爸爸走,尽可能的使用静态库, 下面会重点介绍静态库对...