堆栈的深度问题
堆栈的深度问题关于栈深度问题通常会出现在递归中。因为程序在递归时,每一层递归的临时变量和参数,都是被保存在栈中的,所以递归调用的深度过多,就会造成栈空间存储不足。一般来说栈是向下生长的,堆是向上生长的。把内存地址像门牌号编号成 1 ~ 10000,栈的使用就是先用第 10000
堆栈的深度问题关于栈深度问题通常会出现在递归中。因为程序在递归时,每一层递归的临时变量和参数,都是被保存在栈中的,所以递归调用的深度过多,就会造成栈空间存储不足。一般来说栈是向下生长的,堆是向上生长的。把内存地址像门牌号编号成 1 ~ 10000,栈的使用就是先用第 10000
Swift性能分析编译器优化 一般的编译过程中会把源文件先生成目标文件(.o文件)然后连接器将不同的目标文件组合起来,生成可执行文件。 Swift编译器引入了Whole Module Optimizations优化机制 如果有一个传入泛型的函数funcA,在整个项目中只传入了In
What is app thinning? 原文: https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f 在iOS,tvOS,watchOS上AppStore和操作系统根据用户设备和操作系统的性能对App进行裁剪优化,并
UITableView reloadSection 等方法Crash的问题时常会用到,也时常会崩溃看文档看文档写得很清楚了
Swift COW什么是 COWCopy on write COW是一种常见的计算机技术,有助于在复制结构时提高效率 例如一个数组有100个元素,赋值到另一个数组,赋值所有元素,即最终两个数组内容相同 当使用COW的话 当将两个变量指向同一数组时,他们指向相同的底层数据。两
Swift 向下向上取整ceil(x)返回不小于x的最小整数值(然后转换为double型)。 floor(x)返回不大于x的最大整数值。 round(x)返回x的四舍五入整数值。
Struct与ClassSwift 中的类型 Types 命名类型 protocol enum struct class 复合类型 tuple function 实际上其他类型都是通过命名类型创建的 Struct Class Enum Swift 提供了多种结构
IDL自动化生成埋点模型 使用定义好的IDL语言规范生成JSON上传至指定仓库 Jenkins脚本转化生成代码,上传至指定仓库 项目同步更新相关仓库,在需要埋点的地方埋点时使用相关事件模型即可
iOS-为什么用dispatch_once实现单例 面试问到了自己说到了这点(猜的是线程安全的查了一下确实是这样) 123456789+ (XXXX *)sharedInstance{ static id sharedInstance = nil; sta
iOS-为什么选VIPER一: 优点 拆分的职责更细,便于编写测试用例 VIPER内部通过Protocol解耦,能灵活应对变化 二: 和MV(X)系列的对比 这里的Presenter和MVP中的不同 这里的P并没有主要负责业务逻辑 主要是用来V/I间传递事件,以及管理一些Vie
iOS-源代码到IPA 进行编译 生成DSYM文件 储存了16进制的函数地址映射 崩溃日志中的地址通过此文件由地址映射到具体的函数位置 1. 编译 Clang + LLVM 把源代码转换为更为地址的LLVM IR(Intermedia Represention)LLVM根
SQLite数据库修复TODO: 参考 https://juejin.im/entry/58ff4c7544d9040069fb061e
面试题记录-C语言001_int ptr=(int )(&a+1)下面的输出结果是什么? 123456int main(){ int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("
iOS离屏渲染一: 什么是离屏渲染 如果要爱屏幕上显示内容,我们需要一块至少和屏幕数据量一样大的FrameBuffer作为像素数据的缓存区域,也是GPU储存渲染结果的地方.如果有时面临一些限制,无法把渲染结果直接写入FrameBuffer而是存在别的区域之后再写入FrameBuf
Swift5新特性参考 https://juejin.im/post/5c4b3e91e51d452c8e6d6bcc#heading-1
Realm使用笔记TODO: 参考 https://www.jianshu.com/p/50e0efb66bdf Realm数据库 从入门到“放弃”
网络分层的优点 面试被问到了,记录下 各层之间是独立的 某一层并不需要知道它的下一层是怎么实现的,而仅仅需要知道该层通过层间接口所提供的接口服务 由于每一层间只实现相对独立的功能,因而可以将一个难以处理的复杂问题分解为若干个较容易处理的更小的问题,这样问题的复杂度就降低了