会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
黄增松的技术博客
2013年开始开发iOS(oc+swift+flutter) QQ:759952579
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
10
11
12
13
14
15
16
17
18
···
22
下一页
2022年5月7日
dealloc实现原理
摘要: 当对象引用计数为0时,运行时会调用_objc_rootDealloc,实现如下: - (void)dealloc { _objc_rootDealloc(self); } _objc_rootDealloc(id obj) { assert(obj); obj->rootDealloc(); } i
阅读全文
posted @ 2022-05-07 11:46 黄增松
阅读(149)
评论(0)
推荐(0)
2022年4月27日
扫描无用的类原理
摘要: 静态扫描的原理 在iOS编译的产物 Mach-o文件中 __DATA __objc_classrefs 段记录了引用类的地址,__DATA __objc_classlist段记录了所有类的地址,取差集可以得到未使用的类的地址,然后进行符号化,就可以得到未被引用的类信息。 (PS:静态类获取的类会有误
阅读全文
posted @ 2022-04-27 22:40 黄增松
阅读(131)
评论(0)
推荐(0)
2022年4月18日
layoutSubviews、setNeedsLayout、layoutIfNeeded的区别
摘要: layoutSubviews继承于UIView的子类重写,进行布局更新,刷新视图。如果某个视图自身的bounds或者子视图的bounds发生改变,那么这个方法会在当前runloop结束的时候被调用。为什么不是立即调用呢?因为渲染毕竟比较消耗性能,特别是视图层级复杂的时候。这种机制下任何UI控件布局上
阅读全文
posted @ 2022-04-18 21:42 黄增松
阅读(404)
评论(0)
推荐(0)
获取最顶层的视图控制器 iOS
摘要: 1、获取当前所展示的控制器: //需要获取到显示在最上面的viewController - (UIViewController *)theTopviewControler{ //获取根控制器 UIViewController *rootVC = [[UIApplication sharedAppli
阅读全文
posted @ 2022-04-18 21:09 黄增松
阅读(561)
评论(0)
推荐(0)
2022年4月17日
卡顿检测 iOS
摘要: FPS监控:因为iOS设备屏幕的刷新时间是60次/秒,一次刷新就是一次VSync信号,时间间隔是1000ms/60 = 16.67ms,所有如果咋16.67ms内下一帧数据没有准备好,就会产生掉帧 RunLoop监控:通过子线程检测主线程的RunLoop的状态,kCFRunLoopBeforeSou
阅读全文
posted @ 2022-04-17 18:09 黄增松
阅读(294)
评论(0)
推荐(0)
Swift和OC的区别?
摘要: 1.swift是静态语言,有类型推断,OC是动态语言。 2.swift面向协议编程,OC面向对象编程 3.swift注重值类型,OC注重引用类型。 4.swift支持泛型,OC只支持轻量泛型 5.swift支持静态派发(效率高)、动态派发(函数表派发、消息派发)方式,OC支持动态派发(消息派发)方式
阅读全文
posted @ 2022-04-17 11:29 黄增松
阅读(3304)
评论(0)
推荐(0)
2022年4月7日
串行并行的区别 + 同步异步的区别 iOS
摘要: 同步 异步 表示开辟新线程的能力 异步 可以开辟新线程同步 不可以 串行并行 表示队列调度任务的能力 串行 前一个任务执行完毕才能调度下一个任务并行 前一个任务一旦执行,就可以调度下一个任务 异步 + 串行 可以开辟新线程,但是任务只能一个一个取,所以没必要开辟新线程 结果:单线程 异步 + 并行
阅读全文
posted @ 2022-04-07 19:29 黄增松
阅读(123)
评论(0)
推荐(0)
2022年3月30日
什么情况下会发生死锁?解决死锁的策略有哪些?
摘要: 死锁发生的条件 互斥条件:就是一个资源只能有一个进程占有,不可以被两个或者多个进程占有 不可剥夺条件:进程已经获得的资源在未使用完之前,不可以被抢占,只能在使用完之后自己释放 请求与保持条件:进程自己已经至少保持一个资源,又请求其他资源,但是这个资源被其他进程占有,而且又不释放自己已经占有的资源 环
阅读全文
posted @ 2022-03-30 17:29 黄增松
阅读(253)
评论(0)
推荐(0)
2022年3月23日
CTMediator实践总结
摘要: 需求 在 ViewController ,点击按钮跳向 A2ViewController ,并传参 name=我 (正向传值) 在 A2ViewController ,点击屏幕,跳回 ViewController ,并传参 city=北京 (反向传值) 基于CTMediator的组件化方案,有哪些核
阅读全文
posted @ 2022-03-23 14:59 黄增松
阅读(167)
评论(0)
推荐(0)
2022年3月21日
LeetCode反转二叉树Swift 面试
摘要: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 示例 2: /** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var l
阅读全文
posted @ 2022-03-21 11:55 黄增松
阅读(39)
评论(0)
推荐(0)
上一页
1
···
10
11
12
13
14
15
16
17
18
···
22
下一页
公告