自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 OC 知识点之并发编程

001 线程 运行时执行的一组指令序列.进程启动时的主要线程被称为主线程.所有的UI的元素都需要在主线程中创建和管理.002 线程开销时间开销 内核消耗 (内存空间)003 内核数据结构每个线程大约消耗1KB的内核空间.这块内存用于存储与线程有关的数据结构和属性,这块内存是联动内存.004 栈空间主线程的栈空间1M,而且无法修改.所有的二级线程默认分配512KB的栈空间...

2020-01-30 20:53:14 304

原创 OC-内存管理-NSTimer

NSTimer 就是我们的定时器 可以满足我们很多业务需求 ,但是它会带来内存泄漏的隐患.场景:在一个VC中设定一个全局定时器定时打印log,需要在pop该VC的时候 清除定时器 减少内存泄露解决如下:001 生命周期 处理- (void)didMoveToParentViewController:(UIViewController *)parent{ NSLog(@"...

2020-01-30 12:01:04 234

原创 OC-内存管理-循环引用

存储消耗空间:RAM ROM内存模型:CG ARC MRC内存变量:堆 栈 静态区循环引用在block函数中经常发生举个例子 建立两个全局变量 一个为block 另一个是str@interface NextViewController ()@property (nonatomic,strong) dispatch_block_t block;@property (non...

2020-01-29 10:38:18 278

原创 OC UIView CALayer 之旋转

001 透视投影在3D透视效果中,需要引入投影变换,Z变化,通过手动修改矩阵,m34用于按比例缩放X和Y的值来计算到底要离视角多远.CATransform3D transform = CATransform3DIdentity; transform.m34 = - 1.0 / 500.0; transform = CATransform3DRotate(transf...

2020-01-28 16:51:21 513

原创 OC CALayer 视图特效

001 阴影阴影的形状是继承layer形状,其实在计算阴影的时候很耗费资源,尤其是很多图层的时候,每个图层还有一个透明效果的寄宿图.可以在事先知道图层的形状的情况下提前计算出阴影就可以提高性能.//一个矩形阴影 CGMutablePathRef squarePath = CGPathCreateMutable(); CGPathAddRect(squarePath, N...

2020-01-28 15:09:46 235

原创 OC知识梳理 UIView CALayer之 图层几何学

几个概念布局UIView有三个重要的布局属性:frame bounds center;CALayer有frame bounds position.Frame 代表的是占据父视图的位置和大小,bounds是内部坐标{0,0,width,height},center和position是相对父视图中心点的位置.当操作视图的frame实际上是改变位于视图下方CALayer的frame,不能够...

2020-01-27 16:14:42 297

原创 OC知识梳理 UIView 和UILayer(一)

UIView概念是屏幕上的一块矩形块,它可以能够拦截类似于鼠标和触摸手势等用户输入,视图层级关系中可以相互嵌套,一个视图可以管理它的所有子视图的位置.UILayer概念是和UIView差不多,其实它比UIView更加强大,拥有一些方法和属性来做动画和变换,和UIView最大的不同是CALayer不处理用户交互.UIView是对CALayer的封装,很多动画效果体现在Layer,两者是平行的...

2020-01-26 19:11:17 1082

原创 OC 知识梳理-block(1)

BLock 类型Block可以捕获外界变量 copy001 栈 Blockint a = 10;NSLog(@"%@",^{NSLog(@"hello world ----%d",a);})NSLog(@"%@",block);002 堆 Blockint a = 10;void (^block)(void) = ^{NSLog(@"hello wor...

2020-01-19 21:17:12 178

原创 学习编译和启动时链接器所做的事

连接器,我的理解是将高级语言编译成二进制文件在内存中运行的中间桥梁,最主要的作用是将符号绑定到地址上.IOS用的是LLVM(Low Level Virtual Machine)编译器,编译器可以将代码编译成二进制并在内存中运行,这样可以极大提升程序运行的速度.同时缺点在于调试周期比较长.每次都需要重新启动才能看得到代码运行效果,所以才有了基于runtime机制产生的RN flutter 等跨端...

2020-01-17 13:54:11 214

原创 OC-基于Runtime运用分类中增加属性

题记:在项目不紧张的闲暇时间研究研究提升自己的技术认知.怎样实现分类增加属性?在h文件中增加一个 page属性@property (nonatomic, assign) NSInteger page;在.m文件中对于一个属性而言其实就是实现了get和set方法,那么就应该从 get set方法入手,运用runtime机制动态添加关联属性- (NSInteger)page{...

2020-01-16 20:58:15 252

原创 OC Swizzle实战

前言:在项目中开发中会遇到编辑框触发编辑后白屏,或者其他方式触发出现白屏的情况.通过UI栈追踪器,看到很多视图控制器叠加在一起,不好入手排查,想想有没有其他方式进行更加高效排查呢?开始从视图控制器生命周期的角度去排查,bug显示就是那一瞬间白屏,视图控制器其中有两个很重要的方法viewDidLoad和viewWillAppear方法,可以捕获并替换成自己写的方法然后自己进行排查操作.关...

2020-01-04 09:59:33 2039

CommonWebView的副本.zip

OC与H5自定义交互H5控件

2021-04-29

RunLoop-线程保活.zip

保持线程活demo 利用runloop 机制休眠机制来 来保持线程活跃 并且开发者可以自己控制线程dealloc

2020-03-04

如何学习算法 五毒神掌 让算法改变自己的人生

LeetCode刷题 如何学习算法 五毒神掌 让算法改变自己的人生

2020-02-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除