摘要: 1. LLVM 是什么? 1.1 编译器集合 2.LLVM 能干嘛? 2.1开发编译器的插件 代码规范 3. 编译器架构 3.1 前端:词法分析(生成token),语法分析(生成语法树 AST), 生成中间代码 优化器:优化 后端:生产机器码 4.LLVM编译器架构特点 前端有多种,后端有多种,中间 阅读全文
posted @ 2021-06-18 14:06 syh-918 阅读(88) 评论(0) 推荐(0)
摘要: - (int)cmp:(NSArray *)array idx:(int)idx idx1:(int)idx1{ return [array[idx] intValue] - [array[idx1] intValue]; } - (void)swap:(NSMutableArray *)array 阅读全文
posted @ 2021-06-02 15:10 syh-918 阅读(51) 评论(0) 推荐(0)
摘要: 多线程带来的安全隐患 : 1. 一块资源可能被多个线程共享,也就是多个线程可能同时访问一块资源 2.比如多个线程访问一个对象,统一变量,同一文件。 3.当多个线程访问一块资源时,很容易引发数据错乱和数据安全问题 解决方案:线程同步技术,常用的线程同步技术 加锁 (多条线程 访问同一资源 才需要加锁 阅读全文
posted @ 2021-05-30 11:51 syh-918 阅读(117) 评论(0) 推荐(0)
摘要: 0.多线程就是指从软件或者硬件上实现多个线程并发执行的技术。 1.OC里实现多线程的方案 :pthread,NSThread ,GCD,NSOperation 2.GCD 同步异步: dipath_async dispath_sync 3.GCD 串行并行: Concurrent 可以让多个任务并发 阅读全文
posted @ 2021-05-30 10:29 syh-918 阅读(102) 评论(0) 推荐(0)
摘要: 引用计数存储 查看runtime源码 看retain release recount实现大致过程如下 1.1.判断是否小对象 1.2.判断是否优化过的isa指针 nonpoint isa 1.3.通过hash查找对应的散列表 1.4 找到对应引用计数值 +-1操作 散列表结构 {1.自旋锁 引用计数 阅读全文
posted @ 2021-05-28 17:43 syh-918 阅读(104) 评论(0) 推荐(0)
摘要: 1.copy的目的 生成一个独立的对象,不对原对象有影响 2. copy总结 copy mutablycopy NSString NSString 浅拷贝 NSMutableString 深拷贝 NSMutableString NSString 深拷贝 NSMutableString 深拷贝 NSD 阅读全文
posted @ 2021-05-28 16:47 syh-918 阅读(80) 评论(0) 推荐(0)
摘要: 1.OC对手是使用引用计数来管理内存 2. MRC下是怎么写代码的 @interface ViewController () @property (retain, nonatomic) NSMutableArray *data; @property (retain, nonatomic) UITab 阅读全文
posted @ 2021-05-28 11:11 syh-918 阅读(49) 评论(0) 推荐(0)
摘要: 由低地址->高地址布局如下 1.保留区 -> 代码区(__Text) ->数据区(__Data) ->堆区 -> 栈区 ->内核区 1.1 数据区: 字符串常量 已初始化 全局变量 ,静态变量 未初始化 全局变量 ,静态变量 1.2 堆区: 通过alloc new malloc 等生成的对象 2.1 阅读全文
posted @ 2021-05-28 10:20 syh-918 阅读(95) 评论(0) 推荐(0)
摘要: 1.NSTimer 是依赖runLoop,runloop每跑一圈的任务不是一样的,每次花费的时间也不一致的,当最后一圈比较耗时时候,造成不准时 2.不准时使用方案:使用GCD定时器,GCD定时器直接跟系统内核挂钩不依赖于runloop //创建队列 dispatch_queue_t queue = 阅读全文
posted @ 2021-05-27 11:16 syh-918 阅读(111) 评论(0) 推荐(0)
摘要: CADisplaylnk NSTimer 会对target强引用,造成循环引用 target <->NSTimer 打破循环引用的三种方案: 1.在viewDidDisapper 停止定时器 至为nil 原理:暴力打破 2.使用直接调用block方法 NSTimer方法 原理: NSTimer->b 阅读全文
posted @ 2021-05-27 10:44 syh-918 阅读(75) 评论(0) 推荐(0)